這篇文章主要簡(jiǎn)單的介紹一下Oracle存儲(chǔ)過程,對(duì)新手學(xué)習(xí)和理解Oracle存儲(chǔ)過程是什么及怎樣創(chuàng)建存儲(chǔ)過程都有一定的幫助,感興趣的朋友可以了解看看,希望大家閱讀完這篇文章能有所收獲,接下來跟隨小編一起來學(xué)習(xí)一下吧。

在oracle中,存儲(chǔ)過程是為了完成特定功能的SQL語句集,編譯后存儲(chǔ)在數(shù)據(jù)庫中,用戶通過指定存儲(chǔ)過程名字并給出參數(shù)來執(zhí)行它;語法格式為“create or replace procedure 存儲(chǔ)過程名”。
Oracle存儲(chǔ)過程包含三部分:過程聲明,執(zhí)行過程部分,存儲(chǔ)過程異常(可寫可不寫,要增強(qiáng)腳本的容錯(cuò)性和調(diào)試的方便性那就寫上異常處理)
存儲(chǔ)過程它的使用主要是完成一項(xiàng)復(fù)雜的功能,如果直接使用sql語句則每次都需要進(jìn)行編譯,而存儲(chǔ)過程只需要編譯一次,以后直接調(diào)用即可,它的語法為
create or replace procedure procedure_name as begin extention; end; /
行1:
??CREATE OR REPLACE PROCEDURE 是一個(gè)SQL語句通知Oracle數(shù)據(jù)庫去創(chuàng)建一個(gè)叫做skeleton存儲(chǔ)過程, 如果存在就覆蓋它;
行2:
??IS關(guān)鍵詞表明后面將跟隨一個(gè)PL/SQL體。
行3:
??BEGIN關(guān)鍵詞表明PL/SQL體的開始。
行4:
??NULL PL/SQL語句表明什么事都不做,這句不能刪去,因?yàn)镻L/SQL體中至少需要有一句;
行5:
??END關(guān)鍵詞表明PL/SQL體的結(jié)束
存儲(chǔ)過程創(chuàng)建語法:
create or replace procedure 存儲(chǔ)過程名(param1 in type,param2 out type) as 變量1 類型(值范圍); --vs_msg VARCHAR2(4000); 變量2 類型(值范圍); Begin Select count(*) into 變量1 from 表A where列名=param1; If (判斷條件) then Select 列名 into 變量2 from 表A where列名=param1; Dbms_output。Put_line(‘打印信息’); Elsif (判斷條件) then Dbms_output。Put_line(‘打印信息’); Else Raise 異常名(NO_DATA_FOUND); End if; Exception When others then Rollback; End;
注意事項(xiàng):
1, 存儲(chǔ)過程參數(shù)不帶取值范圍,in表示傳入,out表示輸出
類型可以使用任意Oracle中的合法類型。
2, 變量帶取值范圍,后面接分號(hào)
3, 在判斷語句前最好先用count(*)函數(shù)判斷是否存在該條操作記錄
4, 用select 。。。into。。。給變量賦值
5, 在代碼中拋異常用 raise+異常名