패키지명으로 참조하고 있는 DB Object 찾기 0 1 973

by idoris [SQL Query] [2020.02.12 11:07:27]


특정 DB 패키지명들을 기준으로,
해당 패키지들에서 참조하고 있는 Table, SYNONYM, VIEW를 찾고자합니다.
문제는 고객사DB가 ERP DB로 구성되어 있기 때문에,
아래 쿼리로 특정 패키지 조회시,
참조하고 있는 패키지들이 여러개씩 조회되고,
그 중 특정 패키지명으로 쿼리시 또,
여러개의 패키지들이 조회되고 계속 반복되기 때문에,
참조하고 있는  Table, SYNONYM, VIEW 전체를 찾기가 너무 어렵습니다.

방법이 없을까요?

아래 쿼리로 반복해서 찾는건 거의 불가능인 것 같습니다.

무한반복입니다. ㅠ

select   DISTINCT REFERENCED_OWNER, REFERENCED_NAME, REFERENCED_TYPE  -- REFERENCED_NAME 을 where 절 NAME에 대입(SYNONYM,TABLE,SEQUENCE 제외)
from   dba_dependencies
where  name = 'CZ_PB_MGR'
and    NAME != REFERENCED_NAME
and    owner NOT IN ('PSTARCH','CTXSYS','SYSTEM')
and    REFERENCED_OWNER not in ('SYS','CTXSYS')
and    REFERENCED_TYPE not in ('TYPE',
               'NON-EXISTENT')
and    REFERENCED_NAME not in ('DUAL',
               'STANDARD',
               'PLITBLM',
               'DBMS_OUTPUT')
and REFERENCED_NAME not like 'FND%'
and REFERENCED_NAME not like 'DBMS%'
and REFERENCED_NAME not like 'UTL%'
and REFERENCED_NAME not like 'XML%'
--AND REFERENCED_TYPE = 'PACKAGE'
ORDER BY DECODE(REFERENCED_TYPE,'TABLE',1,'SYNONYM',2,'VIEW',3, 4), REFERENCED_NAME

 

by 마농 [2020.02.12 14:29:53]

계층쿼리를 이용해 보세요.
http://gurubee.net/oracle/advanced

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입