oracle存儲過程的參數(shù)類型有:1、輸入類型,表示調(diào)用者向過程傳入值;2、輸出類型,表示過程向調(diào)用者傳出值(可以返回多個值);3、輸入輸出類型,既表示調(diào)用者向過程傳入值,又表示過程向調(diào)用者傳出值。
本教程操作環(huán)境:Windows7系統(tǒng)、Oracle 11g版、Dell G3電腦。
oracle 存儲過程的參數(shù)類型
1、in:輸入類型,即由應(yīng)用程序?qū)?shù)據(jù)傳入oracle存儲過程中,表示調(diào)用者向過程傳入值;這種參數(shù)在存儲過程中是只讀參數(shù),在存儲過程中無法對該類型的參數(shù)進(jìn)行修改;
2、out:輸出類型,表示過程向調(diào)用者傳出值。
3、in out:輸入輸出類型,兼具以上兩種特性,但可讀可寫;既表示調(diào)用者向過程傳入值,又表示過程向調(diào)用者傳出值。
驗證輸入?yún)?shù):
由于默認(rèn)參數(shù)是輸入類型的,在上圖中,對BAcount參數(shù)賦值,報錯。
解決辦法:
CREATE OR REPLACE PACKAGE body BAWQ_PROC_JGZX IS PROCEDURE PROC_CSJGZX ( pproc VARCHAR2, BAcount int :=3 ) IS i int :=BAcount; --定義變量,通過變量替代參數(shù) BEGIN i:=BAcount; dbms_output.put_line(i); delete CSJGZX; while i>0 LOOP i := i-1 ; insert into CSJGZX (CSJGZX_PROC,id,bh,mc,data) values(pproc,SYS_GUID(),SYS_GUID(),'濟(jì)南',cast(DBMS_RANDOM.VALUE(1,200) as int)); commit; end loop; END PROC_CSJGZX; END BAWQ_PROC_JGZX;
簡單來說 in 是調(diào)用存儲過程的時候向存儲過程傳遞的消息。out是存儲過程向調(diào)用者傳出的消息。in out 則是兩者之間相互通信。
推薦教程:《Oracle教程》