Oracle Stored Procedure 格式如下:
CREATE OR REPLACE
PROCEDURE PROCEDURE_NAME(
args1 NUMBER,
args2 VARCHAR2(20) )
AS
localVar1 NUMBER := 300;
localVar2 VARCHAR(20) := 'Hello World';
BEGIN
DBMS_OUTPUT.PUT_LINE('args1: ' || args1 || ' args2: ' || args2 || ' localVar1: ' || localVar1 || ' localVar2: ' || localVar2);
END PROCEDURE_NAME;
CREATE OR REPLACE PROCEDURE procedure_name 是 Stored Procedure 的開始。
其中的 args1 和 args2 是使用這個 Stored Procedure 時要傳入的變數。
使用方法:
BEGIN
PROCEDURE_NAME(100, 'Hello World');
END;
亦可以預先設定 args 的數值。
CREATE OR REPLACE
PROCEDURE PROCEDURE_NAME(
args1 NUMBER := 100,
args2 VARCHAR2(20) := 'Hello World' )
使用方法:
BEGIN
PROCEDURE_NAME();
PROCEDURE_NAME(150);
PROCEDURE_NAME(200, 'lawpronotes');
END;
這樣變成不傳入變數時便使用預設的數值。
如果 Stored Procedure 無需傳入數值可以不使用 ()
即是像以下這樣:
CREATE OR REPLACE
PROCEDURE PROCEDURE_NAME
AS
而 AS 和 BEGIN 中間的部分是用來定義內部變數的位置,即是 localVar1 和 localVar2。
BEGIN 和 END procedure_name; 中間的部分是 Stored Procedure 的主體,是寫 PL/SQL 的地方,DBMS_OUTPUT.PUT_LINE() 是系統的 function,作用是將資料打印在 console 上,在這裡我將所有變數數值打印出來。
而 PL/SQL 用 || 將字串連接起來,作用就好像 Java 的 + 。
最後使用 END PROCEDURE_NAME; 表示 Stored Procedure 完結。
相關書籍: