2012-02-27 67 views
0

我有兩個Oracle refcursors,一個包含Rows(CustomersList)列表,另一個包含每行的列名稱(PriceGroups)。 我需要遍歷每一行和列,並更新每個行/列的交集。 如何重新定位列光標,以便一次又一次地從第一列開始。 表看起來以下重複使用(重新打開)Oracle refcursor

Customer | pricegroupA | priceGroupB | priceGroupC | priceGroupEtc| 
-----------+--------------------------------------------------------- 
aaaa  | 23.5  | 23.8  | 30.9  | 41.3   | 
--------------------------------------------------------------------- 
bbbb  | 21.7  | 24.6  | 49.9  | 45.9   | 
--------------------------------------------------------------------- 
.... 
+0

dursun回答這個問題的一種方法。通過重新使用你的意思是光標共享? – 2012-02-27 03:48:52

回答

1

,如果你共享了一串代碼,我可以把它改寫爲你,但我認爲下面的例子將是對你有幫助。

declare 
    type r_cursor is REF CURSOR; 
    c_emp r_cursor; 
    en emp.ename%type; 
begin 
    /*Opening the refCursor for the first time*/ 
    open c_emp for select ename from emp; 
    loop 
     fetch c_emp into en; 
     exit when c_emp%notfound; 
     dbms_output.put_line(en); 
    end loop; 
    /*Closing it*/ 
    close c_emp; 
/*Opening the refCursor again after it is closed*/ 
    open c_emp for select ename from emp; 
    loop 
     fetch c_emp into en; 
     exit when c_emp%notfound; 
     dbms_output.put_line(en); 
    end loop; 
    close c_emp; 
    /*Closing it again*/ 
end;