더북(TheBook)

이번에는 오라클에 등록된 잡의 각종 정보를 담고 있는 USER_JOBS 시스템 뷰를 조회해 보자.

입력

    SELECT job, last_date, last_sec, next_date, next_sec, broken, interval, failures, what
      FROM   user_jobs;

결과

    JOB  LAST_DATE LAST_SEC NEXT_DATE  NEXT_SEC BROKEN  INTERVAL          FAILURES
    ---- --------- -------- ---------- -------- ------- ----------------- ---------
    30  2014-07-14 22:39:40 2014-07-14 22:40:40 N       SYSDATE + 1/60/24        0

    WHAT
    ---------------------
    ch15_job_test_proc;

LAST_DATE, LAST_SEC 컬럼은 직전에 실행된 날짜와 시간을, NEXT_DATE와 NEXT_SEC는 다음 번에 실행될 날짜와 시간을 나타낸다. 앞의 결과를 보면 22시 39분 40초에 ch15_job_test_proc 프로시저가 실행되었고, 다음은 22시 40분 40초에 실행될 예정이라는 것을 알 수 있다. BROKEN 컬럼은 잡이 일시 중지된 상태인지를 나타내는데 이 값이 ‘Y’면 중지된 상태임을 뜻한다. FAILURES 컬럼은 해당 잡이 실패한 횟수를 나타낸다.

DBMS_JOB.SUBMIT 프로시저를 실행해서 잡을 등록할 때 몇 가지 주의할 사항이 있다. 먼저 실행될 작업이 들어가는 WHAT 매개변수 값인데, 반드시 맨 마지막에 세미콜론(;)을 붙여야 한다. 만약 세미콜론을 누락하면 SUBMIT 프로시저 호출 시 오류가 발생한다. 그리고 SUBMIT 프로시저를 호출한 후에는 COMMIT 문을 실행해야 한다. 이는 SUMMIT 프로시저 뿐만 아니라 앞으로 설명할 DBMS_JOB 패키지의 다른 프로시저를 호출할 때도 마찬가지다. COMMIT문을 실행하지 않으면 제대로 처리되지 않는다. 마지막으로, 등록할 잡 번호는 시스템에서 자동 생성해주므로 SUBMIT 프로시저를 호출할 때는 잡 번호를 받을 변수를 지정할 수 있도록 익명 블록 형태로 실행해야 한다.

이 세 가지 사항만 주의하면 큰 어려움 없이 SUBMIT 프로시저로 잡을 등록할 수 있을 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.