テーブルへの参照を持つすべてのテーブルを再帰的に選択する必要があります。
したがって、book_authorテーブルに対してこのタスクを実行する必要があるとしましょう。次のようなクエリ:
select distinct sys_connect_by_path(a.table_name, '/'), level
from user_constraints a
join user_constraints b
on a.table_name = b.table_name
start with a.table_name = 'BOOK_AUTHOR'
connect by prior a.r_constraint_name = b.constraint_name
私にこの結果を与える
/BOOK_AUTHOR/D_BOOK/JOBS/CITY/COUNTRY/REGIONS 6
/BOOK_AUTHOR/D_BOOK/JOBS/CITY/COUNTRY 5
/BOOK_AUTHOR/D_BOOK/JOBS/CITY 4
/BOOK_AUTHOR/D_BOOK/D_STYLE 3
/BOOK_AUTHOR/D_BOOK/JOBS 3
/BOOK_AUTHOR/D_AUTHOR 2
/BOOK_AUTHOR/D_BOOK 2
/BOOK_AUTHOR 1
、これは私が必要としているものです。
connect by を使用せずに、再帰関数呼び出しを使用して同じ結果を得る方法を教えてください。
PSテーブルの本、仕事、国などの神秘的なつながりと混同しないでください-私はかなり長い間、これらのテーブルの外部キーで遊んでいました-階層を本当に深くしたかったからです