PLSQL

[PL/SQL] 프로시저/트리거/함수 등에서 특정 내용 포함 위치 검색 쿼리

LKJaden 2024. 12. 17. 14:18

PROCEDURE/TRIGGER/FUNCTION 등에서 원하는 내용을 포함한  위치를 찾는 방법

 

필자는 아래와 같은 코드로 어떤 타입무슨 이름몇번째 라인에 특정 내용이 작성되어 있는지 확인한다. 

SELECT TYPE, NAME, LINE, TEXT FROM USER_SOURCE WHERE UPPER(TEXT) LIKE '%내용%';

USER_SOURCE: 오라클에서 제공해주는 VIEW로 프로시저/트리거/함수 등의 소스 정보를 담고 있으며, 대소문자를 구분하여 검색한다.

  • TYPE: 프로시저/함수/트리거 등의 타입
  • NAME: 프로시저/함수/트리거의 이름
  • LINE: 검색할 내용이 포함된 라인 위치
  • TEXT: 검색할 내용이 포함된 텍스트

대소문자를 구분하므로, UPPER(TEXT) 로 검색할 텍스트를 대문자로 모두 바꾸어 주고, LIKE뒤의 내용도 대문자로 검색한다.

 

예시

PL/SQL로 STATUS를 바꾸어주는 시점을 확인하고 싶을 때 아래와 같이 조회해볼 수 있다.

select type, name, line, text from user_source where upper(text) like '%STATUS =%';

 

assign은 :=도, =도 사용하므로 두 assign기호를 모두 검색해보며 원하는 내용의 위치를 검색해본다.