Oracle存儲過程in、out、in out 模式參數


Oracle存儲過程in、out、in out 模式參數

標簽: oracle存儲inout參數
 分類:

1、in模式參數 
輸入模式的參數,用於接收參數,在子程序內部,不能進行修改。默認的參數模式:in。

--定義打印的存儲過程
CREATE OR REPLACE PROCEDURE println (str VARCHAR) AS BEGIN dbms_output.put_line(str); END;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
--定義測試in模式的存儲過程 CREATE OR REPLACE PROCEDURE pro(p1 IN INT,p2 IN INT)--參數的個數、類型可以自定義,但是參數不允許指定長度 AS BEGIN println(p1); println(p2); --p2:=11; --in模式參數不能為其賦值 END; --通過語句塊調用存儲過程 BEGIN pro(10,100); END;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

這里寫圖片描述

2、out模式參數 
輸出模式的參數,用於輸出值,會忽略傳入的值。在子程序內部可以對其進行修改。 
輸出:子程序執行完畢后,out模式參數最終的值會賦值給調用時對應的<實參變量>。 
注意:out模式參數的調用,必須通過變量。

--測試out模式的存儲過程 CREATE OR REPLACE PROCEDURE pro(p3 OUT INT) AS BEGIN println(p3);--p3會忽略傳入的值 p3:=33;--設定存儲過程調用后的值 END; DECLARE var3 INT :=30;--聲明一個變量用於設定存儲過程調用前的值 BEGIN -- pro(30); --error,20對應過程中out模式的參數,out會輸出結果給調用的實參,但是20不能作為賦值目標 println('存儲過程調用前的值:'||var3); pro(var3);--調用pro存儲過程重新賦值;調用過程,如果過程形參是out模式,必須采用變量實參 println('存儲過程調用后的值:'||var3); END;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

這里寫圖片描述

3、in out 模式參數 
輸入輸出模式:能接收傳入的實參值;在子程序內部可以修改; 可以輸出(必須用實參變量調用)

--測試in out模式的存儲過程 CREATE OR REPLACE PROCEDURE pro(p4 IN OUT INT) AS BEGIN println(p4); p4:=44;--in out模式參數的值可以修改 END; DECLARE var4 INT :=40;--聲明一個變量用於設定存儲過程調用前的值 BEGIN println('存儲過程調用前的值:'||var4); pro(var4);--調用pro存儲過程重新賦值 println('存儲過程調用后的值:'||var4); END;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

這里寫圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM