在sql plus中执行一个函数

mah*_*her 29 oracle sqlplus function

我在oracle中创建了一个函数,它在特定的表中插入记录,并根据函数中的内容返回输出.例如(ins_rec返回号码)

如何调用此函数并在sql plus中查看其输出

Gri*_*Dog 35

declare
  x number;
begin
  x := myfunc(myargs);
end;
Run Code Online (Sandbox Code Playgroud)

或者:

select myfunc(myargs) from dual;
Run Code Online (Sandbox Code Playgroud)

  • 您不能在`select`语句中使用_modifies data_的函数. (3认同)

cag*_*boy 12

一种选择是:

SET SERVEROUTPUT ON

EXEC DBMS_OUTPUT.PUT_LINE(your_fn_name(your_fn_arguments));
Run Code Online (Sandbox Code Playgroud)


Cod*_*eve 5

正如已经回答的另一个答案,请致电select myfunc(:y) from dual;,但是您可能会发现在sqlplus中声明和设置变量有些棘手:

sql> var y number

sql> begin
  2  select 7 into :y from dual;
  3  end;
  4  /

PL/SQL procedure successfully completed.

sql> print :y

         Y
----------
         7

sql> select myfunc(:y) from dual;
Run Code Online (Sandbox Code Playgroud)