網頁

2020/8/6

Oracle PL/SQL call function PLS-00221 error

在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;

沒有留言:

張貼留言