新建了一個Scheduler job,用於執行刪除歷史資料.
執行的腳本是:
BEGIN
del_hisdata ('KQM_EMPSHIFTREPORT', 'KQDATE 'HR.DEL_HISDATA_JOB'
,start_date=> TO_TIMESTAMP_TZ('2011/01/12 00:00:00.000000 +08:00','yyyy/mm/dd hh24:mi:ss.ff tzr')
,repeat_interval => 'FREQ=DAILY;BYHOUR=7;BYMINUTE=00;BYSECOND=0'
,end_date=> NULL
,job_class => 'DEFAULT_JOB_CLASS'
,job_type=> 'PLSQL_BLOCK'
,job_action=> 'BEGIN
del_hisdata(''KQM_EMPSHIFTREPORT'',''KQDATE NULL
);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name=> 'HR.DEL_HISDATA_JOB'
,attribute => 'RESTARTABLE'
,value => FALSE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name=> 'HR.DEL_HISDATA_JOB'
,attribute => 'LOGGING_LEVEL'
,value => SYS.DBMS_SCHEDULER.LOGGING_RUNS);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name=> 'HR.DEL_HISDATA_JOB'
,attribute => 'MAX_FAILURES');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name=> 'HR.DEL_HISDATA_JOB'
,attribute => 'MAX_RUNS');
BEGIN
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name=> 'HR.DEL_HISDATA_JOB'
,attribute => 'STOP_ON_WINDOW_CLOSE'
,value => FALSE);
EXCEPTION
-- could fail if program is of type EXECUTABLE...
WHEN OTHERS THEN
NULL;
END;
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name=> 'HR.DEL_HISDATA_JOB'
,attribute => 'JOB_PRIORITY'
,value => 3);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name=> 'HR.DEL_HISDATA_JOB'
,attribute => 'SCHEDULE_LIMIT');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name=> 'HR.DEL_HISDATA_JOB'
,attribute => 'AUTO_DROP'
,value => FALSE);
SYS.DBMS_SCHEDULER.ENABLE
(name
=> 'HR.DEL_HISDATA_JOB');
END;
/
第一次自動運行的時候報錯:
ORA-06550: 第 ORA-06550: 第 1 行, 第 475 列:
PLS-00103: 出现符号 ""在需要下列之一时:
begin case
declare exit for goto if loop mod null pragma raise return
select update while with
<a bind va
ORA-06550: 第 4 行, 第 50 列:
PLS-00103: 出现符号 ""在需要 行, 第列:
後面將該 Scheduler job的定義導出,重建該Job
卻手動運行成功.
這個應該怎麼解釋?
到底是神馬原因?
[ 本帖最后由 hwtong 于 2011-1-12 14:52 编辑 ] |