如果我有OUT参数的函数,那么我们如何在select语句中调用该函数 我的功能如下
CREATE OR REPLACE FUNCTION fun_1 (p_in IN VARCHAR2, p_out OUT NUMBER)
RETURN number
AS
BEGIN
SELECT SAL INTO p_out FROM emp WHERE ename=P_in;
RETURN p_out;
END;
我想通过select语句调用该函数,如下所示。
select fun_1('KING', lv_var) from dual;
是否可能。 ?
答案 0 :(得分:1)
这可能吗? 否强>
因为,对于普通变量,它会给出complile time error -
"LV_VAR": invalid identifier
然后我尝试使用绑定变量(:lv_var)
。它给出了运行时错误(在设置绑定变量之后)。原因是 -
SQL语句引用的PL / SQL函数不得包含OUT参数。
ORA-06572: Function FUN_1 has out arguments
06572. 00000 - "Function %s has out arguments"
*Cause: A SQL statement references either a packaged, or a stand-alone,
PL/SQL function that contains an OUT parameter in its argument
list. PL/SQL functions referenced by SQL statements must not
contain the OUT parameter.
*Action: Recreate the PL/SQL function without the OUT parameter in the
argument list.
希望这有帮助。