[Oracle] 오라클 JOB 및 프로시저 조회 방법 정리 (DBMS_JOB, SCHEDULER, PROCEDURE)

오라클(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';


다음 이전