Db2存储过程没有任何结果

时间:2014-07-22 14:07:36

标签: sql db2

我是DB2 Development的新手。我正在尝试编写一个从文件中读取记录的过程。一切都很顺利,但我的程序没有显示任何结果。

这是我的代码,我请你通过这个&如果我错了,请好好纠正我。

CREATE OR REPLACE PROCEDURE REA_DT ()
LANGUAGE SQL
    DYNAMIC RESULT SETS 1
    P1: BEGIN
    DECLARE TB_NAME VARCHAR(128);
    DECLARE EOF INT DEFAULT 0;
    DECLARE STMT VARCHAR(500);

    -- Declare cursor
    DECLARE cursor1 CURSOR WITH RETURN for 
    SELECT * FROM MT;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET EOF=1;   
    -- Cursor left open for client application
    OPEN cursor1;
    WHILE EOF=0 
    DO 
    FETCH FROM cursor1 INTO TB_NAME;

    END  WHILE;
    CLOSE cursor1;
END P1

我不知道在FETCH之后放置什么来显示变量值。 在此先感谢


现在我可以查看我桌子上的所有记录。你能不能让我知道为什么会这样。这不是我想要的结果。我期待从一张桌子上读取记录。

1 个答案:

答案 0 :(得分:0)

您已使用WITH RETURN声明了游标,表明您希望存储过程将结果集返回给调用该过程的应用程序。

但是,不是简单地发出OPEN CURSOR语句,而是继续使用WHILE循环来读取游标中的所有行,然后关闭游标。因此,没有任何内容返回到调用存储过程的应用程序。

要返回游标以便调用应用程序可以处理它的结果,只需在过程结束前发出OPEN CURSOR语句。不要FETCH FROMCLOSE光标。