2011-04-20 3 views

답변

9

당신이 개체에 대한 DDL을 생성 한 후 CLOB를 검색 할 DBMS_METADATA 패키지를 사용하여 일반적으로 것 code-- 객체를 검색 할 수 있습니다. 그러나, 그것은 실제로 당신이하고 싶은 것을 말하는 것처럼 들리지 않습니다. 그냥 테이블이 시스템의 코드에 의해 참조되어 있는지 여부를 알아 내려고하는 경우

, 당신은 일반적으로 당신이있어 무엇의 DBA_DEPENDENCIES보기 (또는 ALL_DEPENDENCIES 또는 USER_DEPENDENCIES 사용자의 권한에 따라와 범위를 사용할 것 찾고).

SELECT * 
    FROM dba_dependencies 
WHERE referenced_owner = 'SCOTT' 
    AND referenced_name = 'EMP' 
    AND referenced_type = 'TABLE' 

같은 무언가가 당신에게 SCOTT 스키마에 EMP 테이블에 따라 모든 것을 보여줄 것이다.

DBA_DEPENDENCIES을 보는 대신 코드를 검색하려는 경우는 테이블 이름이 하드 코딩 된 동적 SQL을 수행하는 코드가있는 경우입니다. 그러나 그것은 실제로는 거의 일어나지 않습니다.

+0

궁금 해요 - 또한 확인 뜻이 경우, 예를 들어, 절차보고 A는 표 C에 따라 달라지는보기 B에 좌우됩니까? 아니면 위계 질의가 필요합니까? –

+1

@ Adam -이를 위해 계층 적 쿼리가 필요합니다. 이렇게하면 View B는 표 C에 의존한다는 것을 알 수 있습니다. Oracle은 % ORACLE_HOME % \ rdbms \ admin에 utldtree 스크립트를 제공합니다. –

+0

그리고 항상 내 자신의 것을 쓴다고 생각합니다. 나는 utldtree가 존재하는지 전혀 몰랐다. –

2

당신은 DBA_SOURCE보기를 검색 할 수 있습니다

SELECT * 
    FROM dba_source 
WHERE UPPER(text) LIKE '%YOUR_TABLE_NAME%'; 
0

Toad이있는 경우이 기능을 내장 할 수 있습니다. Toad Search

+0

공유 할 수 있습니까, 그 대화에 도달 한 방법? 해당 대화 상자의 옵션을 어디에서 찾을 수 있습니까? –

1

(I 개인 정보 보호에 대한 내 스키마를 제거)를 선택하여 두꺼비에서이 작업을 수행 :

검색 => 개체 검색을

관련 문제