2014-07-23 69 views
-1

我有一個場景,因爲我需要讀取一個表(僅包含一個包含1000條記錄的列)作爲過程1 &以將該值傳遞給另一個過程2。它應該接受procedure1的值(表名)&我需要從所有表中查詢一些記錄集。我可以將其作爲一個程序來完成。我的需要將所有這些作爲db2過程本身來完成。因爲,我對這些程序很陌生,無法弄清楚。Db2從每個表中獲取最小記錄集的過程

示例代碼片斷將不勝感激。

請幫助我。 在此先感謝

+1

DB2文檔提供了存儲過程的示例。除非您向我們展示您嘗試過的內容,否則我們不知道您需要了解哪些內容尚未包含在文檔中。據我們所知,我們可能擁有的任何示例都不會顯示如何做得比官方文檔更好。 – user2338816

回答

0

這是我的程序:

CREATE PROCEDURE DUMMY2() 
    DYNAMIC RESULT SETS 1 
P1: BEGIN 
    -- Declare cursor 
    DECLARE cursor1 CURSOR WITH RETURN TO CALLER for 
    SELECT TBNAME FROM VENKATASD.META_DISTINCT; 
    -- Cursor left open for client application 
    OPEN cursor1; 
END P1 

過程2:

CREATE PROCEDURE DUMMY3 (OUT P_TBNAME VARCHAR(100)) 
    DYNAMIC RESULT SETS 1 
P1: BEGIN 
    DECLARE result RESULT_SET_LOCATOR VARYING; 
    -- Declare cursor 
    -------DECLARE cursor1 CURSOR WITH RETURN for----- 
    CALL DUMMY2(); 
    ASSOCIATE RESULT SET LOCATOR(result) WITH PROCEDURE DUMMY2; 
    ALLOCATE cur CURSOR FOR RESULT SET result; 

    FETCH cur INTO P_TBNAME; 
    -- Cursor left open for client application 
    CLOSE cur; 
END P1 

請糾正我,如果我錯了。我在控制檯上找不到任何輸出。這是我的輸出屏幕:

Run: VENKATASD.DUMMY3(VARCHAR(100)) 
{call VENKATASD.DUMMY3(?)} 

Run of routine completed successfully. 
Query execution time => 20 ms 
+0

這實際上應該是對問題的編輯,而不是回答。 –

+0

您沒有獲取值,因爲第二個過程打開了第一個遊標,並且無法將這些值發回給調用者。您應該獲取這些值(將它們插入臨時表中),然後在該表上向該調用者打開一個光標。 – AngocA

相關問題