안녕하세요.
오라클에서 작성한 프로시져를 DBMS_JOB PACKAGE를 이용하여 매일, 매달, 매년 돌리는 JOB을 만들고 있습니다.
그런데 호출하는 프로시져에 파라미터를 던져야 하는데 던지게 되는 파라미터 형식에 대한 문의를 하려 합니다.
아래 JOB SCRIPT를 보시면 WHAT에 HISPMD.STATS_SEX_ACC_DAY_JOB라는 프로시져를 호출을 하려하며 그 파라미터값음
오늘이 20120125라면 HISPMD.STATS_SEX_ACC_DAY_JOB('20120124') 를 호출하면 됩니다.
그러나 JOB을 등록할때 실행스크립트를 넣은 부분에서
HISPMD.STATS_SEX_ACC_DAY_JOB(TO_CHAR(sysdate-1,'YYYYMMDD')); 와 같이 넣게 되면
ORA-06550: 줄 8, 열21:PLS-00103: 심볼 "YYYYMMDD"를 만났습니다 다음 중 하나가 기대될 때: . ( )
, * @ % & = - + < / > at in is mod not rem <an exponent (**)>
<> or != or ~= >= <= <> and or like between ||
심볼이 ". 계속하기 위해 "YYYYMMDD" 전에 삽입되었음
이라는 에러가 납니다. 이 실행스크립트 부분에 어떻게 입력을 해야 할까요?
--------------------------------------------------------------------------------------------------------------
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
(
Job => X
,What => 'HISPMD.STATS_SEX_ACC_DAY_JOB
(TO_CHAR(sysdate-1,'YYYYMMDD'));'
,Next_Date => to_date('25-01-2012 21:03:51','dd/mm/yyyy hh24:mi:ss')
,Interval => 'TRUNC(SYSDATE+1)'
,No_Parse => FALSE
);
END;
--------------------------------------------------------------------------------------------------------------
|