我們可以使用子程式來封裝一下我們需要的操作,子程式又有儲存過程,函式和觸發器。
這裡先學習儲存過程~
create [or replace] procedure $procedure_name$ [(引數列表)]
is/as --相當於declare
begin
[exception]--異常處理
end $procedure_name$;
刪除過程:drop procedure $procedure_name$
建立無引數儲存過程create or replace procedure hello
is begin
dbms_output.put_line('hello world');
end hello;
/ --執行
建立帶參儲存過程
引數有三種模式,引數型別定義不用定義寬度
模式說明
in(預設)
模式的引數, 可以是字面量或變數形式傳值
out模式的引數, 必須以變數形式傳遞,變數不應該賦值,接收過程中返回的結果
in out
模式的引數, 必須以變數形式傳遞
--輸出指定字串(使用in)
create or replace procedure print(text in varchar2)
is begin
dbms_output.put_line(text);
end print; /
--計算結果,返回給呼叫者(使用out)
create or replace procedure sum(num1 in int,num2 in int,result out int)
is begin
result := num1 +num2;
end sum;
/declare
--變數不應該賦值
v_result int := 5;
begin
sum(5,6,v_result);
--上面的語句還可以這樣寫,這樣便於直觀的知道引數對應哪乙個
--sum(num1 =>5,num2=>6,result=>v_result);
dbms_output.put_line(v_result);
end;
/--交換兩個數字(使用in out)
create or replace procedure swap(a in out int,b in out int)
is v_temp int ;
begin
v_temp := a;
a := b;
b := v_temp;
end swap;
/declare
a int :=5;
b int := 9;
begin
swap(a,b);
dbms_output.put_line(a||','||b);
end;
/
pl/sql執行begin
--包名.過程名
--未定義包名,不需要寫包名
$procedure_name$;
end;
/
--如果想要其他使用者訪問當前使用者的儲存過程,當前使用者下,授權給其他使用者許可權
grant execute on $procedure_name$ to $user_name$;
命令列執行exec/execute $procedure_name$[(引數)]
perl子程式學習筆記
一.定義 子程式即執行乙個特殊任務的一段分離的 它可以使減少重複 且使程式易讀.perl中,子程式可以出現在程式的任何地方.定義方法為 sub subroutine 二.呼叫 呼叫方法如下 1.用 呼叫 subname sub subname 2.先定義後呼叫,可以省略 符號 sub subname...
Oracle 子程式內聯
start 如果子程式 a 呼叫 b,內聯可以把 b 的 合併到 a 中,從而減少子程式呼叫,提高效能,下面是乙個簡單的例子。子程式 a procedure a isbegin 指定下面的子程式 b 內聯 pragma inline b,yes b 1 注意此處的子程式不會內聯 b 2 end a ...
Perl函式 子程式 學習筆記
一 函式定義 子程式即一段分離的 它可以使減少重複 且程式易讀.perl中,子程式可以出現在程式的任何地方.但一般放在程式的開始或結尾.複製 如下 sub subroutine sub開始,子程式名同變數的命名規則,可與變數同名,最好不要與內部函式同名,如果與內部函式同名則用 subroutine區...