2013年6月7日金曜日

PL/SQLが依存しているオブジェクトを確認する方法

PL/SQLプログラムの依存しているオブジェクトを確認する方法。

依存オブジェクトの確認は、USER_DEPENDENCIES(ALL_DEPENDENCIESやDBA_DEPENDENCIES)ビューで行える。

主なカラム
NAME オブジェクトの名前
TYPE オブジェクトのタイプ
TYPE オブジェクトのタイプ
REFERENCED_NAME 参照されるオブジェクトの名前
REFERENCED_TYPE 参照されるオブジェクトの型

create or replace procedure p_hoge
is
begin
  for c in (select * from table1)
  loop
      dbms_output.put_line(c.column_1);
  end loop;
end;
/

実行結果

  1  select NAME, TYPE, REFERENCED_NAME, REFERENCED_TYPE
  2  from user_dependencies
  3* where name = 'P_HOGE'

NAME                           TYPE                           REFERENCED_NAME                          REFERENCED_TYPE
------------------------------ ------------------------------ ---------------------------------------- ------------------------------
P_HOGE                         PROCEDURE                      STANDARD                                 PACKAGE
P_HOGE                         PROCEDURE                      DBMS_OUTPUT                              SYNONYM
P_HOGE                         PROCEDURE                      TABLE1                                   TABLE
P_HOGE                         PROCEDURE                      SYS_STUB_FOR_PURITY_ANALYSIS             PACKAGE