高級篇
繼續(xù)上文的初級篇,聊一聊存儲過程的常用特性,談?wù)劥鎯^程在工作中的具體使用,希望能對讀者有所幫助。
參數(shù)傳入模式
PL/SQL存儲過程有三種傳參模式in 、out、in out。默認(rèn)情況下(即不寫)為in模式
先來看看下面的存儲過程:
--in 、out、 in out模式測試create or replace procedure proc_param_demo(p1 in number,p2 out number,p3 in out number) asbegin dbms_output.put_line('測試in 模式存儲過程中p1的值為:'||p1);--標(biāo)準(zhǔn)輸出 dbms_output.put_line('測試out 模式存儲過程中p2的值為:'||p2); dbms_output.put_line('測試in out模式存儲過程中p3的值為:'||p3); --p1 :=100; --報錯 p2 := 100; --:=PL/SQL標(biāo)準(zhǔn)賦值 p3 :=100;end;
調(diào)試完錯誤之后,調(diào)用上面的存儲過程,這次調(diào)用我們不直接把值傳遞給存儲過程的參數(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('測試in 模式存儲過程后p1的值為:'||p1); dbms_output.put_line('測試out 模式存儲過程后p2的值為:'||p2); dbms_output.put_line('測試in out模式存儲過程后p3的值為:'||p3);end;
輸出結(jié)果如下圖所示: