2016-12-20 9 views
0

Oracle SQL開発者の単純なストアドプロシージャを使用して、 "empDetails"テーブルの結果を取得しようとしています。以下はSP定義ですOracleストアドプロシージャの出力配列

create or replace 
PROCEDURE TEST_ALL (all_Cursor OUT SYS_REFCURSOR) AS 
BEGIN 
open all_Cursor for 
    select * from empDetails; 
END TEST_ALL; 

私はストアドプロシージャを実行すると出力結果タブで出力を見ることができません。 しかし、私は直接SQLクエリを介してデータをフェッチすることができますselect * from empDetails;

手がかりはありますか?

答えて

2

使用この方法は:

declare 
     a SYS_REFCURSOR; 

     v_emp_detls empDetails%rowtype; 

     begin 

     TEST_ALL (all_Cursor=>a); 

      loop 
      FETCH a INTO v_emp_detls; 
       EXIT WHEN a%NOTFOUND; 
       DBMS_OUTPUT.PUT_LINE(v_emp_detls.col1||v_emp_detls.col2..and so on); 

      end loop; 
    end; 
1

代替は、以下を使用することです:SQL * Plusで、あなたは上記のように実行することができ、ほとんどの他のGUIで動作

VARIABLE rc REFCURSOR; 

begin 
    test_all(:rc); 
end; 
/

PRINT rc; 

スクリプト(SQL Developer、Toadなど)

関連する問題