我可能会对此感到茫然,但我正在尝试编写一个过程,将给定子项的所有祖先插入到新表中。这就是我所拥有的:
create or replace procedure ancestors(childIn IN varchar2)
is
begin
insert into AncestorTable(Parent)
select Parent from Family
where Child=childIn;
ancestors(Parent);
end;
/
我知道ancestors(Parent)
已经过时了,但我想知道是否有一种简单的方法可以在不进入游标的情况下完成此操作。如果我需要一个光标,我可以就如何做到这一点找到方向吗?感谢您的任何见解。
答案 0 :(得分:2)
像
这样的东西select Parent
from Family
start with Child=childIn
connect by prior Parent = Child;
这样你就可以制作一个插件而不需要递归。
insert into AncestorTable(Parent)
(select Parent
from Family
start with Child=childIn
connect by prior Parent = Child);