oracle 表查看依赖,oracle – 表依赖的递归查询不会像我想的那样递归

我有一个想法,我可以编写一个查询来查找根表的所有后代表,基于外键.

查询看起来像这样:

select level, lpad(' ', 2 * (level - 1)) || uc.table_name as "TABLE", uc.constraint_name, uc.r_constraint_name

from all_constraints uc

where uc.constraint_type in ('R', 'P')

start with uc.table_name = 'ROOT_TAB'

connect by nocycle prior uc.constraint_name = uc.r_constraint_name

order by level asc;

结果我看起来像这样:

1 ROOT_TAB XPKROOTTAB

1 ROOT_TAB R_20 XPKPART_TAB

2 CHILD_TAB_1 R_40 XPKROOTTAB

2 CHILD_TAB_2 R_115 XPKROOTTAB

2 CHILD_TAB_3 R_50 XPKROOTTAB

此结果是ROOT_TAB的所有子表,但查询不会递归到CHILD_TAB_1,CHILD_TAB_2或CHILD_TAB_3的子项.

递归查询对我来说是新的,所以我猜我在connect by子句中缺少一些东西,但我在这里画一个空白.实际上是否可以在单个查询中获得ROOT_TAB的完整层次结构,或者我最好在递归过程中包装查询?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值