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);

谁能帮我解决这个问题,我可以计算出添加所有行,只是嵌套表是我的弱点。

感谢您的所有帮助和建议。

4

1 回答 1

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;
于 2013-07-04T08:36:05.697 回答