oracle存儲過程是什么

oracle中,存儲過程是為了完成特定功能的SQL語句集,編譯后存儲在數據庫中,用戶通過指定存儲過程名字并給出參數來執行它;語法格式為“create or replace procedure 存儲過程名”。

oracle存儲過程是什么

本教程操作環境:windows7系統、oracle 11.2.0.1.0版,DELL G3電腦。

Oracle存儲過程包含三部分:過程聲明,執行過程部分,存儲過程異常(可寫可不寫,要增強腳本的容錯性和調試的方便性那就寫上異常處理)

存儲過程它的使用主要是完成一項復雜的功能,如果直接使用sql語句則每次都需要進行編譯,而存儲過程只需要編譯一次,以后直接調用即可,它的語法為

create?or?replace?procedure?procedure_name as begin ???extention; end; /

行1:

  CREATE?OR?REPLACE?PROCEDURE?是一個SQL語句通知Oracle數據庫去創建一個叫做skeleton存儲過程,?如果存在就覆蓋它;

行2:

  IS關鍵詞表明后面將跟隨一個PL/SQL體。

行3:

  BEGIN關鍵詞表明PL/SQL體的開始。

行4:

  NULL?PL/SQL語句表明什么事都不做,這句不能刪去,因為PL/SQL體中至少需要有一句;

行5:

  END關鍵詞表明PL/SQL體的結束

存儲過程創建語法:

?create?or?replace?procedure?存儲過程名(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;

注意事項:

1,?存儲過程參數不帶取值范圍,in表示傳入,out表示輸出

類型可以使用任意Oracle中的合法類型。

2,??變量帶取值范圍,后面接分號

3,??在判斷語句前最好先用count(*)函數判斷是否存在該條操作記錄

4,??用select?。。。into。。。給變量賦值

5,??在代碼中拋異常用?raise+異常名

推薦(免費):oracle

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊7 分享