我正在尝试在PL / SQL中编写一个类别的递归函数。
问题是:
所以说表A有行:
{B, C},
{C, D},
{C, F},
{D, E},
{E, F}
直接或间接地返回B所依赖的所有内容。
元组{B,C}意味着B依赖于C,C依赖于D,依此类推。 当给定B时,该函数将返回一个光标或会产生的东西:{C,D,F,E} 请注意,简单循环和仅打印值可能会产生重复结果(在本例中为E)。
我是PL / SQL的新手,我真的想不出办法做到这一点。
提前感谢您的帮助!
答案 0 :(得分:4)
假设表格如下:
ID PARENT_ID
--- ---------
B C
C D
C F
D E
E F
为什么不使用分层查询,如:
select distinct parent_id
from (select parent_id
from my_table
start with ID = 'B'
connect by nocycle id = prior parent_id
)
order by parent_id
这个SQL未经测试,但它应该是正确方向的一个点;如果你需要的话,你的函数可以返回那个光标,如果没有,你的函数可以返回一个值数组。