无法使用存储过程DB2使用数据库表中的游标检索多行

时间:2016-03-25 13:20:31

标签: stored-procedures db2 mule

我正在尝试使用存储过程从表中检索多行,但它对我不起作用。我的存储过程如下,

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;

我正在尝试使用数据库连接器从Mule Anypoint Studio调用存储过程,并且当我使用记录器打印有效负载时,结果显示为null。如果我尝试修改查询,因为它返回单行,它可以工作(不使用游标)。

请帮忙解决此问题。感谢。

1 个答案:

答案 0 :(得分:2)

DB2的哪个平台和版本?

尝试添加

  • 动态结果集1
  • WITH RETURN TO CLIENT

像这样:

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;