2011-02-26 9 views
22

特定のテーブルにレコードを挿入し、関数内で発生した内容に応じて出力を返すoracleで関数を作成しました。例えば(ins_recリターン番号)私は、この関数を呼び出すと、SQLで、その出力を確認するにはどうすればよいSQL Plusで関数を実行

プラス

答えて

10

1つのオプションは、次のようになります。また

SET SERVEROUTPUT ON 

EXEC DBMS_OUTPUT.PUT_LINE(your_fn_name(your_fn_arguments)); 
26
declare 
    x number; 
begin 
    x := myfunc(myargs); 
end; 

select myfunc(myargs) from dual; 
+1

'select myfunc(myargs)from dual;'私のために働きました。私は 'delcare'版で問題を抱えていました。 – claptimes

+0

私はプロシージャを呼び出す関数を持っています。このメソッドを使用して関数を呼び出すと、DML書き込み例外が発生します。 "exec dbms_output ...."コールを使用すると、エラーなしで動作します。 – user1747935

+2

'select'ステートメントで_データを変更する関数を使用することはできません。 – GriffeyDog

3

もう1つの答えがすでに述べられているので、select myfunc(:y) from dual;を呼び出してください。ただし、sqlplで変数を宣言して設定すると私たちは少しトリッキーです:

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; 
関連する問題