2014-07-22 87 views
0

我是DB2开发新手。我正试图编写一个从文件中读取记录的过程。一切都很顺利,但我的程序没有显示任何结果。Db2存储过程结果无

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

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

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

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

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