2016-03-25 17 views
0

ストアドプロシージャを使用してテーブルから複数の行を取得しようとしていますが、動作しません。次のように私のストアドプロシージャは、私は、データベースコネクタを使用してミュールAnypoint Studioからストアドプロシージャを呼び出すためにしようとしていますし、私はロガーとペイロードを印刷するときはnullとして結果を見てきました、ストアドプロシージャを使用してデータベーステーブルからカーソルを使用して複数の行を取得できません。DB2

CREATE OR REPLACE PROCEDURE E_Enquiry 
    (IN SourceQueue1 VARCHAR(30)) LANGUAGE SQL 
BEGIN 
    DECLARE C1 CURSOR FOR 
     select CreationTime 
     from ms.Exception_Message 
     where SourceQueue = SourceQueue1; 

    open c1; 
END; 

です。私はそれが(カーソルを使用せずに)動作する単一の行を返すようにクエリを変更しようとする場合。

こちらをご覧ください。ありがとう。

+0

、宣言したカーソルを開くと、一般的ですどのようにストアドプロシージャから結果セットを返すか。私はあなたがこれを知っていることを知っているので、あなたのコメントは私を混乱させる – Charles

+0

@Charles - 実際、私はしませんでした。私に教えてくれてありがとう!関数や命令型言語にはあまりにも慣れていると思います。前に見たような例がカーソル型を明示的に返すような気がします。 –

答えて

2

DB2のどのプラットフォームおよびバージョンですか?

追加

  • DYNAMIC RESULTはそうのようなクライアント

TO RETURN WITH 1

  • を設定してみてください時計仕掛け-ミューズ@

    CREATE OR REPLACE PROCEDURE E_Enquiry 
        (IN SourceQueue1 VARCHAR(30)) 
    LANGUAGE SQL 
    DYNAMIC RESULT SETS 1 
    BEGIN 
        DECLARE C1 CURSOR WITH RETURN TO CLIENT FOR 
         select CreationTime 
         from ms.Exception_Message 
         where SourceQueue = SourceQueue1; 
    
        open c1; 
    END; 
    
  • +0

    チャールズありがとう。それは働いています – mani24991

    +0

    @ mani24991は、答えが受け入れられたとマークすることを忘れないでください。 – Charles

    関連する問題