job~ 도와주세요~ 0 3 2,431

by 손님 [2013.06.18 15:20:21]


job을 이렇게 생성하려고 합니다.
1년에 한번. 매년 1월1일에 돌리는 job입니다.

 DECLARE
  X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
    ( JOB    => X
,what   => 'procedure ;'
,next_date => to_date('01-01-2014 11:28:06','dd/mm/yyyy hh24:mi:ss')
,INTERVAL  => 'trunc(sysdate,"Y")'
,no_parse  => TRUE
    );
  SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
END;
/

ORA-23319: parameter value "trunc(sysdate,"Y")" IS NOT appropriate

--> 이런 에러를 떨어뜨립니다. 

interval을
,INTERVAL => 'trunc(sysdate,'Y')'

-->ORA-06550: line 8, column 36:
PLS-00103: Encountered the symbol "Y" when expecting one of the following:

이런 에러가 납니다.

도와주세요~

interval을 어떻게 줘야할까요?

by 우리집아찌 [2013.06.18 15:23:46]

더블 쿼티션아니라 싱글 쿼티션 두개 아닌가요?

by 신이만든짝퉁 [2013.06.18 15:41:47]
우리집아찌님 말씀대로 홑따옴표 2개가 맞는 방법이고

interval은 용근님이 말씀하신 대로

add_months(trunc(sysdate, 'Y'), 12)

이렇게 주는 것이 원하시는 결과가 나올겁니다.

실제사용시에는 이렇게 됩니다.
'add_months(trunc(sysdate, ''Y''), 12)'

next_date도 이렇게 주세요.

add_months(trunc(sysdate, 'Y'), 12)

by 디케이 [2013.06.19 09:38:10]
--신이만든짝퉁님 설명에서 시분초 추가했습니다. 매년 1월 1일 오전 11시28분6초 다시 실행
interval => 'TRUNC(add_months(SYSDATE, 12), ''y'')+11/24+28/1440+6/86400'
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입