首頁  >  文章  >  資料庫  >  oracle儲存程序是什麼

oracle儲存程序是什麼

醉折花枝作酒筹
醉折花枝作酒筹原創
2021-04-16 14:29:2816484瀏覽

在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預存程序, 如果存在就覆寫它;

##  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

##############################################################

以上是oracle儲存程序是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn