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기호를 모두 검색해보며 원하는 내용의 위치를 검색해본다.
'PLSQL' 카테고리의 다른 글
[PL/SQL] DBMS_OUTPUT.PUT_LINE 출력하기 (0) | 2024.12.23 |
---|---|
[PL/SQL] 익명 블록을 이용한Package의 Procedure 실행 방법 (2) | 2024.12.18 |