1. 程式人生 > >Oracle 儲存過程 in、out、in out 引數的使用方法

Oracle 儲存過程 in、out、in out 引數的使用方法

1. in 引數

用於接收引數,在子程式內部,不能進行修改。預設的引數模式:in

案例:

-- 宣告儲存過程
create or replace procedure pro_in(p_num in number)
is
begin
  dbms_output.put_line(p_num);
  -- p_num:=10;--  新增此行編譯報錯,in 引數不能賦值
end pro_in;
-- 呼叫
declare
test number:=1;
begin
  pro_in(test);
  dbms_output.put_line(test);
end;

結果: 輸出 兩個 1

2.out 引數

輸出模式的引數,用於輸出值,會忽略傳入的值。在子程式內部可以對其進行修改。

呼叫時 引數需要使用變數.

案例:

-- 宣告儲存過程
create or replace procedure pro_out(p_num out number)
is
begin
  dbms_output.put_line(p_num);
  p_num:=10;
end pro_out;
-- 呼叫
declare
test number:=1;
begin
  pro_out(test);
  dbms_output.put_line(test);
end;

結果: 忽略輸入的值,輸出一個 空,和一個 10

3. in out 引數

能接收傳入的實參值;在子程式內部可以修改,可以輸出

呼叫時 引數需要使用變數.

案例:

-- 宣告儲存過程
create or replace procedure pro_in_out(p_num in out number)
is
begin
  dbms_output.put_line(p_num);
  p_num:=10;
end pro_in_out;
-- 呼叫
declare
test number:=1;
begin
  pro_in_out(test);
  dbms_output.put_line(test);
end;

結果: 輸出一個 1 和 一個 10