網頁

2016年6月13日 星期一

[AP] ORACLE/PLSQL Stored Procedure的基礎定義

[Stored Procedure]

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 

====================



沒有留言:

張貼留言