2014-07-22 82 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遊標。