Stored procedures 计划程序未按预期工作
我有一个简单的plsql过程,它只接受一个参数并执行一些工作。过程本身将一些数据记录在日志表中,并在插入后提交,即过程开始、结束等 程序签名如下Stored procedures 计划程序未按预期工作,stored-procedures,oracle11g,scheduled-tasks,scheduler,Stored Procedures,Oracle11g,Scheduled Tasks,Scheduler,我有一个简单的plsql过程,它只接受一个参数并执行一些工作。过程本身将一些数据记录在日志表中,并在插入后提交,即过程开始、结束等 程序签名如下 pr_procedure_name(batch_size IN NUMBER DEFAULT 1000, poErrorDescription OUT VARCHAR) 这是我为运行这个过程而编写的scheduler/jb/程序。理想情况下,我希望它每天23小时运行,但为了测试,我每15分钟运行一次。但它不起作用。有人能帮我一下吗 BEGIN S
pr_procedure_name(batch_size IN NUMBER DEFAULT 1000, poErrorDescription OUT VARCHAR)
这是我为运行这个过程而编写的scheduler/jb/程序。理想情况下,我希望它每天23小时运行,但为了测试,我每15分钟运行一次。但它不起作用。有人能帮我一下吗
BEGIN
SYS.DBMS_SCHEDULER.CREATE_SCHEDULE
(
schedule_name => 'CLEAN_EVERYDAY'
,start_date => trunc(SYSDATE)
,repeat_interval => /*'FREQ=DAILY; BYHOUR=23;'*/ 'freq=MINUTELY;interval=15;'
,end_date => NULL
,comments => 'Description goes here'
);
END;
/
BEGIN
SYS.DBMS_SCHEDULER.CREATE_PROGRAM
(
program_name => 'BATCH_CLEANUP'
,program_type => 'PLSQL_BLOCK'
,program_action => 'DECLARE
nErrorCode NUMBER;
sErrorDesc VARCHAR2 (32767);
BEGIN
pr_procedure_name( poErrorDescription=>sErrorDesc ) ;
IF (poErrorDescription IS NOT NULL)
THEN
RAISE_APPLICATION_ERROR (-20000, sErrorDesc);
END IF;
END;'
,number_of_arguments => 0
,enabled => TRUE
,comments => 'More comments'
);
END;
/
BEGIN
SYS.DBMS_SCHEDULER.CREATE_JOB
(
job_name => 'CLEAN_JB'
,schedule_name => 'CLEAN_EVERYDAY'
,program_name => 'BATCH_CLEANUP'
,comments => NULL
);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'CLEAN_JB'
,attribute => 'RESTARTABLE'
,value => TRUE);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'CLEAN_JB'
,attribute => 'LOGGING_LEVEL'
,value => SYS.DBMS_SCHEDULER.LOGGING_RUNS);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name => 'CLEAN_JB'
,attribute => 'MAX_FAILURES');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name => 'CLEAN_JB'
,attribute => 'MAX_RUNS');
BEGIN
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'CLEAN_JB'
,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 => 'CLEAN_JB'
,attribute => 'JOB_PRIORITY'
,value => 3);
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE_NULL
( name => 'CLEAN_JB'
,attribute => 'SCHEDULE_LIMIT');
SYS.DBMS_SCHEDULER.SET_ATTRIBUTE
( name => 'CLEAN_JB'
,attribute => 'AUTO_DROP'
,value => FALSE);
SYS.DBMS_SCHEDULER.ENABLE
(name => 'CLEAN_JB');
END;
/
“不工作”是什么意思。提交作业时是否出现错误?作业是否抛出错误?作业没有运行吗?您在
dba\u调度程序作业日志
,dba\u调度程序作业运行详细信息
,等等中看到了什么?这些都有助于解决这个问题。我在程序操作中出错