2013-07-03 89 views
0

我有以下代碼:如何填充嵌套表格?

 FOR rw IN myCur(id) LOOP 
      BEGIN 
      SELECT DISTINCT ingredient, f_ing_descr(1, ingredient, 0), syntypepack.fGetSyn(ingredient, 700512) CAS, syntypepack.fGetSyn(ingredient, 700513) EC 
      INTO lnIngredient, lsIngredientDescription, lnCAS, lnEC 
      FROM ING 
      WHERE part = 'FSI' 
      AND rev = 1 
      ORDER BY quantity DESC; 

我要填寫一個嵌套表與此語句返回的所有值,之後所有的行添加到表格。

我已經有這樣的:

TYPE ingCasEc IS TABLE OF NUMBER; 
    lnTableSyns ingCasEc ; 
    lnTableSyns := ingCasEc(lnIngredient, lnCAS, lnEC); 

誰能請幫助我這個問題,我可以計算附加的所有行出來,就在嵌套表是我的弱點。

感謝您的幫助和建議。

+1

對我來說這是沒有意義的,你在這裏做什麼..你爲什麼要將不同的列值放入同一個嵌套表中?你能解釋你實際上想要完成什麼嗎? – Craig

+0

因爲我需要按原樣檢索這些特定的列值,然後將它們導入到自定義的api中。這被認爲是最簡單的方法,因爲我需要暫時存儲這些值,然後清除我需要插入它們的表格,然後添加臨時存儲的列值。我只是想將這些變量添加到嵌套表中,即所有。 – J2H656

回答

0
DECLARE 
    TYPE int_rec IS RECORD 
    (
     lnIngredient   VARCHAR2(30) 
    , lsIngredientDescription VARCHAR2(30) 
    , lnCAS     VARCHAR2(30) 
    , lnEC     VARCHAR2(30) 
    ); 

    TYPE ingCasEc IS TABLE OF int_rec; 
    lnTableSyns ingCasEc ; 
BEGIN 
    SELECT DISTINCT ingredient, f_ing_descr(1, ingredient, 0), syntypepack.fGetSyn(ingredient, 700512) CAS, syntypepack.fGetSyn(ingredient, 700513) EC 
    BULK COLLECT INTO lnTableSyns 
    FROM ING 
    WHERE part = 'FSI' 
    AND rev = 1 
    ORDER BY quantity DESC; 
END; 
+0

謝謝! – J2H656