--需求: 輸入員工的編號,輸出員工的工資,和部門編號
create or replace procedure pro_find_by_student
(
--輸出引數, 員工編號, 接收傳遞過來的引數
p_s_id in student.s_id%type ,
--輸出引數, 名字 回傳輸出的值
p_s_name out student.s_name%type ,
p_s_scor out student.s_scor%type
)
as
begin
--根據輸入進來的編號, 回傳姓名和工資
select s_name,s_scor into p_s_name,p_s_scor from student where s_id = p_s_id;
end;
--呼叫
declare
--必須宣告變數接收輸出的引數
v_s_name STUDENT.S_NAME%type;
v_s_scor STUDENT.S_SCOR%type;
begin
--呼叫存盤程序
pro_find_by_student(12,v_s_name,v_s_scor);
--輸出回傳的值
DBMS_OUTPUT.PUT_LINE('姓名: '||v_s_name||', 成績: '||v_s_scor);
end;
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
求大神幫忙..............uj5u.com熱心網友回復:
用的 sql developer嗎?有一個 dbms 視窗,試試打開這個。
uj5u.com熱心網友回復:
哪里 新手表示很懵逼....uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
oracle的回傳不是SQL SERVER的語法(直接select一個結果集),是要用游標回傳的。uj5u.com熱心網友回復:
既然已經寫入到游標變數,再把游標打開,取出變數就好了啊,建議你搜一下游標的使用,很快你就知道了uj5u.com熱心網友回復:
樓主,存盤程序我試了沒問題啊,有輸出值的uj5u.com熱心網友回復:
你是不是把dbms_output.disable了uj5u.com熱心網友回復:
SQL> set serveroutput onSQL> declare
2 v_s_name student.s_name%type;
3 v_s_scor student.s_scor%type;
4
5 begin
6 pro_find_by_student(13,v_s_name,v_s_scor);
7 dbms_output.put_line('姓名:'||v_s_name||',成績:'||v_s_scor);
8 end;
9 /
姓名:jack,成績:100
PL/SQL 程序已成功完成。
SQL>
uj5u.com熱心網友回復:
使用dbms_output.put_line 需要提前進行設定, set serveroutput on 執行這條陳述句就可看到輸出了轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/85227.html
標籤:基礎和管理
