ORACLEで特定のオブジェクトから関連するオブジェクトを取得するSQL

はじめに

時折業務中に特定のオブジェクト(ViewとかProcedureとか)から参照しているオブジェクトの一覧が欲しい時に利用しているSQLです。
階層問い合わせを利用して取得しています。

SQL

select
    name
    , type
    , referenced_name
    , referenced_type
    , level 
    , sys_connect_by_path(name,' -> ') as path
from
    user_dependencies 
start with
    name = [objectName] -- 調べたいViewとかProcedureとかの名前を入れます。
connect by
    nocycle prior referenced_name = name
order siblings by name; 

これでばーっと出てくるはずです。
必要な項目を適当に足したりしながら利用します。

おわりに

調査に利用するSQLに何か誤りがあると笑えないので、利用する際は他の手段でも一度ご確認ください。
何かあっても責任は負いかねます…。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です