高級(jí)篇
繼續(xù)上文的初級(jí)篇,聊一聊存儲(chǔ)過程的常用特性,談?wù)劥鎯?chǔ)過程在工作中的具體使用,希望能對(duì)讀者有所幫助。
參數(shù)傳入模式
PL/SQL存儲(chǔ)過程有三種傳參模式in 、out、in out。默認(rèn)情況下(即不寫)為in模式
先來看看下面的存儲(chǔ)過程:
--in 、out、 in out模式測(cè)試create or replace procedure proc_param_demo(p1 in number,p2 out number,p3 in out number) asbegin dbms_output.put_line('測(cè)試in 模式存儲(chǔ)過程中p1的值為:'||p1);--標(biāo)準(zhǔn)輸出 dbms_output.put_line('測(cè)試out 模式存儲(chǔ)過程中p2的值為:'||p2); dbms_output.put_line('測(cè)試in out模式存儲(chǔ)過程中p3的值為:'||p3); --p1 :=100; --報(bào)錯(cuò) p2 := 100; --:=PL/SQL標(biāo)準(zhǔn)賦值 p3 :=100;end;
調(diào)試完錯(cuò)誤之后,調(diào)用上面的存儲(chǔ)過程,這次調(diào)用我們不直接把值傳遞給存儲(chǔ)過程的參數(shù)。所以需要使用declare關(guān)鍵字來聲明變量,然后就可以在執(zhí)行區(qū)域才可以使用這些變量:
declare --聲明區(qū)域p1 number; p2 number; p3 number;begin p1 := 10; p2 := 10; p3 := 10; proc_param_demo(p1,p2,p3); dbms_output.put_line('測(cè)試in 模式存儲(chǔ)過程后p1的值為:'||p1); dbms_output.put_line('測(cè)試out 模式存儲(chǔ)過程后p2的值為:'||p2); dbms_output.put_line('測(cè)試in out模式存儲(chǔ)過程后p3的值為:'||p3);end;
輸出結(jié)果如下圖所示: