在Oracle PL/SQL呼叫function時出現
PLS-00221: 'function_name' is not a procedure or is undefined
PLS-00221: 'function_name' 不是程序或未定義
錯誤的原因如下。
如果你很確定已經定義了function,但在PL/SQL呼叫時卻出現上述錯誤,那可能是呼叫時沒有用變數去接回傳的值。
例如下面是一個function f1
,回傳VARCHAR2
。
CREATE OR REPLACE FUNCTION f1 (
i_var IN VARCHAR2
) RETURN VARCHAR2
呼叫時沒用變數接收回傳的值則出現PLS-00221
錯誤
DECLARE
v_var VARCHART2(100);
BEGIN
f1('hello world'); -- 發生PLS-00221: 'f1' is not a procedure or is undefined
END;
用變數接收function的回傳值才可正確呼叫。
DECLARE
v_var VARCHART2(100);
BEGIN
v_var := f1('hello world'); -- 用v_var接收f1的回傳值
END;
沒有留言:
張貼留言