2013-04-04 84 views
0

我很難找出正確的方法來使用cursor1中游標1的結果。這可以做到嗎?我讀過它們可以存儲在聲明的VARCHAR(8000)中,但是會引發錯誤的類型錯誤。我的第二個問題是,如果可以存儲這些結果,它們是否可以保存多個列/行?我對DB2不是很熟悉,所以對你的專業人士的幫助將不勝感激。遊標中的結果是否可以用於輔助遊標查詢?

這裏是什麼樣子的代碼:

 BEGIN 
    DECLARE v_type VARCHAR(8000); 
    DECLARE cursor1 CURSOR WITH RETURN FOR SELECT type FROM vehicles; 
    DECLARE cursor2 CURSOR WITH RETURN FOR SELECT * FROM manufacturers WHERE type LIKE v_type; 

    OPEN cursor1 
    FETCH cursor1 INTO v_type; 
    CLOSE cursor1; 
    OPEN cursor2; 
    END 
    @ 

最後,有沒有什麼辦法來測試沒有結果的光標?理想情況下通過「如果」聲明。請隨時糾正我的語法中的任何其他問題。謝謝!

回答

0

請問JOIN不工作?什麼類似如下:

DECLARE Manufactured_Vehicle CURSOR WITH RETURN FOR 
SELECT <list columns in manufacturers> 
FROM manufacturers 
JOIN vehicles 
    ON vehicles.type = manufacturers.v_type -- whatever the relationship is 

把結果存儲在時尚沒有任何意義。

另外,你一般想要做什麼?我的意思是,遊標經常被認爲是「黑客」,當結果集可能會變得太大時,SQL被設計爲以「基於集合」的方式工作,而不是逐行。