高級篇

繼續(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é)果如下圖所示: