오라클의 여러 스키마에서 모든 프로그래밍 객체 (함수, 내장 프로 시저, 트리거 등)를 검색 할 수 있습니까?오라클 : 모든 저장된 procs/트리거/다른 db 코드를 검색합니까?
내 코드에는 사용되지 않은 것으로 보이는 테이블이 많이 있지만 처음에는 확인하지 않고 테이블을 제거하여 손상시키지 않으려 고합니다.
오라클의 여러 스키마에서 모든 프로그래밍 객체 (함수, 내장 프로 시저, 트리거 등)를 검색 할 수 있습니까?오라클 : 모든 저장된 procs/트리거/다른 db 코드를 검색합니까?
내 코드에는 사용되지 않은 것으로 보이는 테이블이 많이 있지만 처음에는 확인하지 않고 테이블을 제거하여 손상시키지 않으려 고합니다.
당신이 개체에 대한 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을 수행하는 코드가있는 경우입니다. 그러나 그것은 실제로는 거의 일어나지 않습니다.
당신은 DBA_SOURCE보기를 검색 할 수 있습니다
SELECT *
FROM dba_source
WHERE UPPER(text) LIKE '%YOUR_TABLE_NAME%';
(I 개인 정보 보호에 대한 내 스키마를 제거)를 선택하여 두꺼비에서이 작업을 수행 :
검색 => 개체 검색을
궁금 해요 - 또한 확인 뜻이 경우, 예를 들어, 절차보고 A는 표 C에 따라 달라지는보기 B에 좌우됩니까? 아니면 위계 질의가 필요합니까? –
@ Adam -이를 위해 계층 적 쿼리가 필요합니다. 이렇게하면 View B는 표 C에 의존한다는 것을 알 수 있습니다. Oracle은 % ORACLE_HOME % \ rdbms \ admin에 utldtree 스크립트를 제공합니다. –
그리고 항상 내 자신의 것을 쓴다고 생각합니다. 나는 utldtree가 존재하는지 전혀 몰랐다. –