2012-02-27 13 views
0

私は、行リスト(CustomersList)と各行の列名(PriceGroups)を含む2つのOracle refcursorsを持っています。 各行と列をループし、各行/列の交差を更新する必要があります。 どのようにして、最初の列で何度も何度もカーソルを再配置することができます。 表は、あなたが私はあなたのためにそれを書き換えることができ、コードの束を共有していた場合Oracleリファクタの再利用

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は質問に一方的に回答しました。あなたはカーソル共有を再使用していましたか? –

答えて

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;