如何在oracle中用嵌套游标遍历相同的table

How to traverse the same table with nested cursors in oracle

我遇到一个 oracle 过程的问题,该过程使用两个嵌套游标循环相同的 table。

从概念上讲,我有一个包含十列的 table,编号从一到十。

第 1 列必须始终有数据,因为它是主键。 第 10 列可能有也可能没有数据,因为它就像一个子列,如果它没有数据就是父记录,否则就是子记录。

我需要在两个不同的 table 中插入父记录,而只在其中一个中插入子记录。

为此我创建了两个游标,一个选择父记录,另一个只选择子记录。

我将第 1 列(出现在子记录的第 10 列)的值作为参数传递给第二个游标。

问题是它在完成第一个游标之前不会进入第二个游标,我需要它从第一个游标读取记录,进入第二个游标,读取存在的记录,然后return到第一个光标。

谁能帮我解决这个问题?

从现在开始,感谢您的关注。

尝试这样的事情:

begin

  for c in (select * from child_table) loop
  
    insert into table1
      select * from parent_table where column_1 = c.column_10;
  
    insert into table2
      select * from parent_table where column_1 = c.column_10;
  
    insert into table3
      (column_1,
       column_2,
       column_3,
       column_4,
       column_5,
       column_6,
       column_7,
       column_8,
       column_9,
       column_10)
    values
      (c.column_1,
       c.column_2,
       c.column_3,
       c.column_4,
       c.column_5,
       c.column_6,
       c.column_7,
       c.column_8,
       c.column_9,
       c.column_10);
  end loop;
end;