DataBase/Oracle

[Oracle] USER_SOURCE, ALL_SOURCE 검색

mingmongs 2025. 5. 22. 09:23

title

프로시저(Procedure), 트리거(Trigger), 함수(Function), 패키지(Package), 타입(Type) 등의 내용을 특정 키워드로 검색하고 싶은 경우가 있다.
이 때, USER_SOURCE나 ALL_SOURCE를 활용하면 된다.

 

1) USER_SOURCE

: 현재 유저의 저장 오브젝트에서 텍스트의 내용을 확인 할 수 있다.
조회할 수 있는 컬럼은 아래와 같다.

NAME: 프로그램에 해당하는 객체명
TYPE: 프로그램 타입으로 종류에 따라 PROCEDURE, FUNCTION, PACKAGE, PACKAGE BODY, TYPE 등 의 값이 들어가 있다.
LINE: 프로그램 소스 코드의 라인(줄) 번호
TEXT: 프로그램 소스 코드

-- 현재 유저의 저장 오브젝트 타입 종류 조회
SELECT DISTINCT TYPE
FROM USER_SOURCE;

 

2) ALL_SOURCE

: 유저가 접근할 수 있는 모든 저장 오브젝트에서 텍스트의 내용을 확인 할 수 있다.

-- 권한을 가진 모든 소스 전체 조회
SELECT *
FROM ALL_SOURCE;

-- SHOP_CD 키워드를 포함하는 모든 소스를 조회
SELECT *
FROM ALL_SOURCE
WHERE TEXT LIKE '%SHOP_CD%';

-- SHOP_CD 키워드를 포함하는 모든 프로시저를 조회
SELECT *
FROM ALL_SOURCE
WHERE TYPE = 'PROCEDURE'
AND TEXT LIKE '%SHOP_CD%';