web-dev-qa-db-ja.com

sql plusで関数を実行する

特定のテーブルにレコードを挿入し、関数内で発生する内容に応じて出力を返す関数をOracleで作成しました。例(ins_rec戻り番号)

この関数を呼び出してその出力をsql plusで見るにはどうすればよいですか

28
maher
declare
  x number;
begin
  x := myfunc(myargs);
end;

代わりに:

select myfunc(myargs) from dual;
33
GriffeyDog

1つのオプションは次のとおりです。

SET SERVEROUTPUT ON

EXEC DBMS_OUTPUT.PUT_LINE(your_fn_name(your_fn_arguments));
11
cagcowboy

別の回答で既に述べたように、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;
4
CoderSteve