JOB을 실행시키는 것은 Cron Tab이나 유사한 것으로 프로그램을 실행시켜 해당 프로시져를 호출하는 방법이 있을 수 있다.
또하나는 오라클에서 job을 등록시켜두고 실행하는 것이다. 여기서는 후자를 고려해 보겠다.
/*============================================================
ORACLE JOB등록하는 것은 시간이 지나면 잊혀지기 쉽다.
찾기 쉬운 어딘가에 메모해 두자.
*===========================================================*/
DECLARE
X NUMBER;
SYS.DBMS_JOB.SUBMIT
( job => X
,what => 'PROC_MAKE_YOUR_STATUS(0);'
,next_date => to_date('22-02-2009 23:40:42','dd/mm/yyyy hh24:mi:ss')
,interval => 'SYSDATE+30/1440 ' --// 30분으로 설정
,no_parse => FALSE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
END;
/
commit;
/*============================================================
위 스크립트를 실행하면 아래처럼 번역된다
REMOVE안의 번호는 상황에 따라 바뀌므로 ... 염두에 둘 것.
가령, 471번으로 존재할 경우 다른 번호가 올 수 있는 것으로 알고 있음.
*===========================================================*/
BEGIN
SYS.DBMS_JOB.REMOVE(471);
COMMIT;
END;
/
--
-- JOB471 (Job)
--
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => 'PROC_MAKE_YOUR_STATUS(0);'
,next_date => to_date('22-02-2009 23:40:42','dd/mm/yyyy hh24:mi:ss')
,interval => 'SYSDATE+30/1440 ' --// 30분으로 설정
,no_parse => FALSE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
COMMIT;
END;
/
/*============================================
JOB이 실행시키는 프로시져는 아래처럼 생성해 주면 된다.
*===========================================*/
CREATE OR REPLACE PROCEDURE PROC_MAKE_YOUR_STATUS
(P_IN_STAT_DATE IN NUMBER
)
/*-------------------------------------------------------------------------------------------
통계 프로시져
--------------------------------------------------------------------------------------------*/
IS
vDS_ERROR VARCHAR2(200);
vCNT_DATA NUMBER;
vCUST_CODE VARCHAR2(100);
...
...
BEGIN
...
...
COMMIT;
END ;
/
'Oracle' 카테고리의 다른 글
| oracle Job 등록 스크립트 (0) | 2011/05/13 |
|---|---|
| Vista에 Oracle 10g Client 설치하기 (2) | 2007/04/25 |
| ORA-01006: 바인드 변수가 없습니다 (0) | 2006/08/07 |

