如何调用其中包含OUT参数的select语句中的函数?

时间:2017-09-08 11:37:56

标签: sql oracle plsql

如果我有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;

是否可能。 ?

1 个答案:

答案 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.

希望这有帮助。