Oracle

게시글 보기
작성자 유건데이타 등록일 2015-05-16
제목 Table/Procedure Dependency Tracking Utility
Table/Procedure Dependency Tracking Utility
=============================================

USER/ALL/DBA_DEPENDENCIES 데이터 딕셔너리는 object 에 대한 직접적인
dependency 정보만을 제공한다. 그러나, 이에 대한 보충으로 object 의 직접,
간접적 dependencies 에 대한 정보가 필요한 경우가 많다.
dependency tracking utility 를 사용하려면 $ORACLE_HOME/rdbms/admin
디렉토리의 UTLDTREE.SQL 스크립트를 먼저 실행해야한다. 이 스크립트는 다음의
schema object 을 생성한다.

Table DEPTREE_TEMPTAB
VIEW DEPTREE, IDEPTREE
SEQUENCE DEPTREE_SEQ
PROCEDURE DEPTREE_FILL

사용하는 방법은 다음과 같다.

SQL> exec deptree_fill('TABLE','HWANKIM','DEPT')

PL/SQL procedure successfully completed.

SQL> select * from ideptree;

DEPENDENCIES
-----------------------------------------------------------------------
TABLE HWANKIM.DEPT
VIEW HWANKIM.V_DEPT
PROCEDURE HWANKIM.VIEW_DEPT

3 rows selected.

위 내용에서 procedure view_dept 는 view v_dept 를 참조하고 마찮가지로
view v_dept 는 table dept 를 참조하고 있음을 쉽게 알 수 있다. 더군다나
이 utility 는 table 뿐만 아니라 procedure 같은 object 들에 관한 dependency
도 확인할 수 있으며 ideptree 를 query 해보면 위와 같은 indentation 이 된
tree 를 볼 수 있다.
특히, INTERNAL user 로 UTLDTREE.SQL 을 실행한 경우에는 dependenct object
들 뿐만 아니라 shared SQL areas 의 dependent cursor 들의 정보까지도 확인할
수 있다.

SQL> select * from ideptree;

DEPENDENCIES
------------------------------------------------------------------------
TABLE HWANKIM.DEPT
CURSOR ."select * from dept "
VIEW HWANKIM.V_DEPT
CURSOR ."SELECT * FROM V_DEPT WHERE DEPTNO = :b1"
PROCEDURE HWANKIM.VIEW_DEPT
CURSOR ."begin view_dept(30); end; "

6 rows selected.
Comment
등록된 코멘트가 없습니다.