Ref.: ORACLE/PLSQL Stored procedure 預存程序-建立
store procedure:
包括Funcion(函式), Procedure(程序), Package(程序包)
分為:
宣告區 DECLARE (//用來宣告程序會用到的變數或常數,為選擇性的區塊)
執行區 BEGIN - END (//程式邏輯放在這裡,可以有很多組BEGIN - END)
例外處理區 EXCEPTION (//需寫在BEGIN - END的中間,用來處理執行區塊中可能出現的錯誤)
====================
一般的PL/SQL的預存程序長得像下面這樣。
通常包括一個Header用來命名此程序,並指明此程序是函式(Function),程序(Procedure)還是Package。
主邏輯程式放在BEGIN及END之間,一個BEGIN開始搭配一個END結束。
BEGIN... END之間可以再有BEGIN... END。
EXCEPTION要寫在在BEGIN及END中間。
Header AS
[DECLARE
...]
BEGIN
...
[EXCEPTION
...]
END;
====================
(//透過PL/SQL Developer這套軟體)
建立預存程序(Procedure)
建立Procedure的格式寫法為:
CREATE OR REPLACE
(參數名稱1 MODE 型態 預設值, 參數名稱1 MODE 型態 預設值, ....)
IS
BEGIN
.....;
END 預存程序名稱;
//在此範例中參數僅定義名稱及資料型態,MODE及預設值皆空白。MODE若為空白的話則預設為IN
(建立PROCEDURE時,定義參數的資料型態不用指明長度)
//記得在BEGIN及END間的空白要加上NULL,敘述結尾要記得加上分號(;),否則會有錯誤...
e.g.:
create or replace procedure TEST_Y16019
(USER_ID VARCHAR2,
USER_NAME VARCHAR2,
DESCRIPTION varchar2
)
is
begin
NULL;
end TEST_Y16019;
====================
建立函式(Function)
在左邊Database的目錄找到Functions,按右鍵→NEW...
Name: //函式名稱
Parameters:
Return type: //為函式的回傳值資料型態
//範例為return number
點選OK後,會自動產生...
create or replace function 函式名稱(Name in type, Name in type, ...) return number is
Result number;
begin
return()Result;
end 函式名稱;
e.g.:
create or replace function TEST_Y16019_02
(x in number, y in number)
return number is Result number;
begin
return(x*Y);
end TEST_Y16019_02;
//在左邊Database的目錄找到Functions下建立的函式名稱,按右鍵→Test 開啟測試視窗
//接著在下方的變數窗格中,在 x 的值輸入2,y 的值輸入5,然後按左上方的放大鏡(Start debugger (F9))
//然後按上方的綠色三角形(Run)即開始執行此函式,執行完可看到結果輸出於result的值
====================
刪除procedure
跟刪除資料表差不多,開啟SQL編輯視窗(SQL Window),輸入以下並執行即可刪除。
(注意若是在Program Window中執行會出現錯誤,因為在Program Window中並認不得DROP關鍵字。)
DROP PROCEDURE TEST_Y16019_01;
//TEST_Y16019_01: procedure name
另一處理方式:
直接在Procedure上按右鍵→Drop
====================
沒有留言:
張貼留言