오라클 - 등록된 Job 및 프로시저 호출 조회

  오라클에서 등록된 Job이 어떤 Stored Procedure(저장 프로시저) 또는 PL/SQL 블록을 호출하는지 확인하려면 사용 중인 Job 스케줄러 종류에 따라 다른 뷰를 조회해야 합니다.




1. DBMS_SCHEDULER 사용 시 (DBA_SCHEDULER_JOBS)

SELECT JOB_NAME, 
       PROGRAM_NAME, 
       JOB_ACTION 
  FROM DBA_SCHEDULER_JOBS
 ORDER BY JOB_NAME;


설명
• JOB_NAME : 잡 이름
• PROGRAM_NAME : 프로그램(PL/SQL 블록 또는 저장 프로시저)이 등록된 경우 해당 프로그램 이름
• JOB_ACTION : 실제 실행되는 PL/SQL 블록 또는 저장 프로시저명 (PROCEDURE_NAME 형태로 나옴)

예를 들어, JOB_ACTION이 'MY_PACKAGE.MY_PROCEDURE'라면 MY_PACKAGE의 MY_PROCEDURE 프로시저를 실행하는 것임.



2. DBMS_JOB 사용 시 (DBA_JOBS)

SELECT JOB, 
       WHAT 
  FROM DBA_JOBS
 ORDER BY JOB;


설명
• JOB: 잡 ID
• WHAT: 실제 실행할 PL/SQL 블록 또는 프로시저 호출





3. DBMS_SCHEDULER에서 JOB_ACTION이 NULL인 경우

• DBA_SCHEDULER_JOBS에서 JOB_ACTION이 NULL이고 PROGRAM_NAME이 존재하는 경우, 해당 프로그램이 실제 실행할 프로시저를 포함하고 있음.

SELECT PROGRAM_NAME, 
       PROGRAM_ACTION 
  FROM DBA_SCHEDULER_PROGRAMS
 WHERE PROGRAM_NAME IN (SELECT PROGRAM_NAME FROM DBA_SCHEDULER_JOBS);


PROGRAM_ACTION이 실제 실행할 프로시저명을 포함함.



정리
• DBA_SCHEDULER_JOBS: JOB_ACTION 컬럼에서 실행할 프로시저 확인 (DBMS_SCHEDULER 사용 시)
• DBA_JOBS: WHAT 컬럼에서 실행할 프로시저 확인 (DBMS_JOB 사용 시)
• DBA_SCHEDULER_PROGRAMS: PROGRAM_NAME 기반으로 실행할 프로시저 확인 (JOB이 프로그램을 참조하는 경우)

댓글 쓰기

다음 이전