오라클(Oracle) 데이터베이스에서 등록된 JOB과 프로시저(PROCEDURE)를 확인하고 싶을 때가 있습니다.
운영 중인 배치 작업이 정상 실행되고 있는지, 누가 어떤 프로시저를 작성했는지 등은 시스템 안정성과 운영 효율성에 중요한 요소입니다.
이 포스팅에서는 Oracle DB에서 등록된 JOB(DBMS_JOB / DBMS_SCHEDULER)과 프로시저(PROCEDURE)를 쉽게 조회할 수 있는 SQL 문을 정리해 드립니다.
✅ 1. 오라클 JOB 조회 방법
Oracle에서는 두 가지 방식으로 JOB이 등록될 수 있습니다
- DBMS_JOB 방식 (오래된 방식)
- DBMS_SCHEDULER 방식 (Oracle 10g 이상 권장 방식)
🔹 1-1. DBMS_JOB으로 등록된 JOB 조회
SELECT JOB, SCHEMA_USER, LAST_DATE, NEXT_DATE, INTERVAL, BROKEN, WHAT
FROM DBA_JOBS;- JOB: JOB 번호
- SCHEMA_USER: 소유자
- WHAT: 실행할 PL/SQL 코드
- INTERVAL: 실행 주기
👉 참고: 현재 사용자만 조회하려면 USER_JOBS 사용
🔹 1-2. DBMS_SCHEDULER로 등록된 JOB 조회
SELECT OWNER, JOB_NAME, ENABLED, STATE, REPEAT_INTERVAL, JOB_TYPE, JOB_ACTION
FROM DBA_SCHEDULER_JOBS;- JOB_NAME: 스케줄러 JOB 이름
- REPEAT_INTERVAL: 실행 간격 (cron 스타일)
- JOB_ACTION: 실행할 프로시저, SQL 등
👉 참고: USER_SCHEDULER_JOBS로 현재 사용자 JOB만 확인 가능
✅ 2. 오라클 프로시저(PROCEDURE) 조회 방법
Oracle DB에 등록된 프로시저는 다음 SQL로 확인할 수 있습니다.
🔹 2-1. 전체 프로시저 조회 (접근 권한 있는 모든 것)
SELECT OWNER, OBJECT_NAME, STATUS
FROM ALL_OBJECTS
WHERE OBJECT_TYPE = 'PROCEDURE';🔹 2-2. 특정 사용자(SCHEMA)의 프로시저만 조회
SELECT OBJECT_NAME, STATUS
FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'PROCEDURE'
AND OWNER = 'YOUR_USER';📌 보너스: JOB + 프로시저 통합 조회 (특정 사용자 기준)
-- JOB
SELECT 'DBMS_JOB' AS JOB_TYPE, JOB AS NAME, WHAT AS DEFINITION
FROM DBA_JOBS
WHERE SCHEMA_USER = 'YOUR_USER'
UNION ALL
SELECT 'SCHEDULER_JOB', JOB_NAME, JOB_ACTION
FROM DBA_SCHEDULER_JOBS
WHERE OWNER = 'YOUR_USER';
-- 프로시저
SELECT OBJECT_NAME, STATUS
FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'PROCEDURE'
AND OWNER = 'YOUR_USER';