使用oracle forall插入父表和子表

时间:2015-07-09 09:15:24

标签: oracle parent-child bulkinsert

我有一个要求,我需要将数据插入到oracle 11g中的父表和子表中

将数据插入父表中,并将所有成功记录插入子表中。

我想使用批量处理来实现这一目标。

我能够将记录插入到父表中,并使用return子句将PK转换为集合

但我很震惊如何使用返回的集合

插入子表

请你帮我看一下如何实现它的例子。

p.S:我没有创建类型访问权限

由于

1 个答案:

答案 0 :(得分:0)

DECLARE
   CURSOR cOld IS
      SELECT *
      FROM my_list;

   new_id  NUMBER;
BEGIN
   FOR rOld IN cOld LOOP
      new_id := sup_seq.NEXTVAL;  -- Get the ID to use for the new row

      INSERT INTO my_list
             (sup_id,sup_name,sup_code)
      VALUES (new_id,rOld.sup_name,rOld.sup_code);

      INSERT INTO my_list_details
            (buy_id,sup_id,sup_detail,max_amount,min_amount)
      SELECT buy_seq.NEXTVAL,new_id,sup_detail,max_amount,min_amount
      FROM   my_list_details
      WHERE  sup_id = rOld.sup_id;
   END LOOP;
END;