我是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
之后放置什么来显示变量值。
在此先感谢
现在我可以查看我桌子上的所有记录。你能不能让我知道为什么会这样。这不是我想要的结果。我期待从一张桌子上读取记录。
答案 0 :(得分:0)
您已使用WITH RETURN
声明了游标,表明您希望存储过程将结果集返回给调用该过程的应用程序。
但是,不是简单地发出OPEN CURSOR
语句,而是继续使用WHILE
循环来读取游标中的所有行,然后关闭游标。因此,没有任何内容返回到调用存储过程的应用程序。
要返回游标以便调用应用程序可以处理它的结果,只需在过程结束前发出OPEN CURSOR
语句。不要FETCH FROM
或CLOSE
光标。