본문 바로가기
DB/oracle

oracle / job / batch

by 하하IT 2020. 4. 17.

참고 : https://docs.oracle.com/database/121/ARPLS/d_job.htm#ARPLS66560

 

 

1. 신규등록

 

DBMS_JOB.SUBMIT( 

   job       OUT    BINARY_INTEGER,

   what      IN     VARCHAR2, 

   next_date IN     DATE DEFAULT SYSDATE, 

   interval  IN     VARCHAR2 DEFAULT 'NULL',

   no_parse  IN     BOOLEAN DEFAULT FALSE,

   instance  IN     BINARY_INTEGER DEFAULT ANY_INSTANCE,

   force     IN     BOOLEAN DEFAULT FALSE

   );

 

 

ex)

DECLARE

   job  NUMBER;

BEGIN

   DBMS_JOB.SUBMIT(job  --자동생성

                , 'DBMS_OUTPUT.PUT_LINE(''OK''); '  --ok 메세지출력

, SYSDATE  --현재시간

, 'SYSDATE + 1' -- 실행주기 

);

END;

 

   참고 : 실행주기

       'sysdate + 7'                            : 일주일에 1회 실행

       'sysdate + 1' : 하루에 1회 실행

       'next_day(sysdate, ''TUESDAY'')' : 매주 화요일에 실행

       'null'                                   : 1회 실행

       'sysdate + 1/24'                         : 1시간에 1회 실행

       'sysdate + 1/24/60'                      : 1분에 1회 실행

       'trunc(sysdate+1) + 2/24'                : 다음날 2시에 1회 실행

 

 

 

2. 조회 

  SELECT * FROM USER_JOBS;

  SELECT * FROM DBA_JOBS;

 

3. 삭제

BEGIN

   DBMS_JOB.REMOVE(JOB_NO);

   COMMIT;

END;

/

 

4. 실행주기변경

 

  EXECUTE DBMS_JOB.INTERVAL(JOB_NO             --job 번호

                          , 'sysdate + 1'  --실행주기 

    );

 

 

5. 실행

 

  EXECUTE DBMS_JOB.RUN(

                         JOB_NO            --job 번호

    );

  COMMIT;

'DB > oracle' 카테고리의 다른 글

CentOS6.5 / Oracle11g / The listener supports no services  (0) 2020.04.24
oracle / random YYYYMMDD  (0) 2020.04.22
oracle / dbms_scheduler  (0) 2020.04.17
oracle / expdp / impdp  (0) 2020.04.17
oracle / 암호화 대상칼럼조회  (0) 2020.04.17