2009-03-10 3 views
12

SELECT *에서 ALL_OBJECTS는 다양한 프로 시저/패키지/테이블/기타 db 객체의 이름을 반환합니다. 일치하는 문자열에 대해 PL/SQL 코드를 살펴보고 싶습니다. 어떻게해야합니까?검색 PL/SQL 코드

같은

뭔가 : SELECT (의사) * all_code FROM WHERE '%으로 myText %의'같은

답변

28

사용 뭔가 같은 line_of_code 다음 USER_SOURCE 테이블을 확인, 많은 옵션이 있습니다

SELECT * 
     FROM USER_SOURCE 
    WHERE type='PACKAGE' 
     AND NAME='PACKAGE_NAME' 
    ORDER BY type, name, line; 

.

는 문자열에 대한 모든 코드를 검색하려면 다음 코드를 볼

SELECT * 
    FROM ALL_SOURCE 
    WHERE UPPER(text) LIKE UPPER('%what I am searching for%') 
ORDER BY type, name, line 

참고는 _SOURCE 테이블에 포함되지 않습니다. 보기 코드는 LONG 열이고 쿼리하기 어려운 [USER|ALL|DBA]_VIEWS.TEXT에 저장됩니다.

+2

또는 ALL_SOURCE WHERE OWNER = [schema] – cagcowboy

+2

"ORDER BY type, name, line"을 사용하면 결과를 더 명확하게 할 수 있습니다. – Barry

+2

대문자와 소문자를 구별하지 마십시오. upper (text)와 같은 곳 (% 검색 대상) % – tuinstoel