在Pacakge(套裝程式)中建立一個Function(函式)的方法如下。
下面範例建立一個Package名為pg_demo
,並在裡面宣告一個Function名為f1
。
pg_demo (spec)
CREATE OR REPLACE PACKAGE pg_demo AS
-- 宣告函式規格
FUNCTION f1 (
i_var VARCHAR2 -- 輸入參數
) RETURN VARCHAR2;
END pg_demo;
pg_demo (body)
CREATE OR REPLACE PACKAGE BODY pg_demo AS
-- 宣告函式主體
FUNCTION f1 (
i_var VARCHAR2 -- 輸入參數i_var,型態為VARCHAR2
) RETURN VARCHAR2 -- 輸出參數為VARCHAR2型態
AS
v_var VARHCAR2(100); -- 宣告變數v_var的型態為VARCHAR2(100)
BEGIN
v_var := i_var; -- 將輸入參數i_var賦值給變數v_var
RETURN v_var;
END f1;
END pg_demo;
在PLSQL調用pg_dmeo.f1
。
DECLARE
v_var VARCHAR2(100); -- 宣告變數v_var為VARCHAR2(100)
BEGIN
v_var := pg_demo.f1('hello world'); -- 輸入'hello world',並將回傳結果賦值給v_var
DBMS_OUTPUT.PUT_LINE(v_var); -- 印出結果
END;
執行結果輸出如下。
hello world
要注意function必須定義RETURN
,所以調用時要用變數去接。若沒用變數去接會出現
PLS-00221: 'function_name' 不是程序或未定義
的錯誤。
沒有留言:
張貼留言