2011-01-31 2 views

답변

51

이 작업을 수행 할 수 있습니다

또는
select * 
from user_source 
where upper(text) like upper('%SOMETEXT%'); 

는 SQL 개발자가 내장 된 신고에 따라 수행 : USER_SOURCE에 대한

View > Reports > Data Dictionary Reports > PLSQL > Search Source Code 

11G 워드 프로세서입니다 here

+0

감사합니다. 정확히 내가 무엇을 찾고 있었는지. 시간을 절약 해 줬어. 어디에서 user_source에 대한 자세한 정보를 찾을 수 있습니까? –

+2

나는이 쿼리에 대해 하루에 3 번 같은 페이지에 와서 업데이트 대답 –

+1

를 참조하지만 필사적으로 대소 문자를 구별 기준을 입력하는 것을 피하기 위해, 다음과 같은 개선이 필요한 : USER_SOURCE 에서 선택 * 어디 위 (텍스트) like upper ('% 검색 문자열 %') –

8

당신에게 보기 *_DEPENDENCIES을 사용할 수 있습니다. 예 :

SELECT owner, NAME 
    FROM dba_dependencies 
WHERE referenced_owner = :table_owner 
    AND referenced_name = :table_name 
    AND TYPE IN ('PACKAGE', 'PACKAGE BODY') 
+3

분명히 이것은 모든 패키지가 정적 SQL을 사용하는 경우에만 작동합니다. 패키지에 동적 SQL이 포함되어있는 경우 Tony Andrews의 솔루션이 더 좋습니다. – Allan

+0

@Allan : 정적 SQL에 대한 좋은 지적. –

0

때때로 당신이 찾고있는 열은 당신이에 관심이없는 많은 다른 것들의 이름의 일부가 될 수 있습니다.

예를 들어 내가 최근에도 일부를 형성 "BQR"라는 칼럼을 찾고 있었다 "BQR_OWNER", "PROP_BQR"등과 같은 다른 많은 열 중에서 하나를 선택하십시오.

그래서 워드 프로세서가 "전체 단어 만"을 표시해야한다는 체크 박스를 갖고 싶습니다.

불행히도 LIKE에는 이러한 기능이 없지만 REGEXP_LIKE가 도움이 될 수 있습니다.

SELECT * 
    FROM user_source 
WHERE regexp_like(text, '(\s|\.|,|^)bqr(\s|,|$)'); 

이 이름의 일환으로이 열을 찾아 "BQR"와 다른 열을 제외 할 정규 표현식입니다 :

(\s|\.|,|^)bqr(\s|,|$) 

정규 표현식은 공백과 일치 (\ S) (|), 마침표 (쉼표 또는 줄 끝 기호 (^)), 뒤에 "bqr", 공백, 쉼표 또는 줄 끝 기호 ($).

0

그런데 "UPPER (bqr)"로 사용할 수 있으므로 "("또는 ")"와 같은 다른 문자를 추가해야하는 경우 해당 옵션을 이전 및 이전 목록에 추가 할 수 있습니다. 문자 다음에.

(\s|\(|\.|,|^)bqr(\s|,|\)|$) 
관련 문제