【发布时间】:2014-11-24 17:03:23
【问题描述】:
试图创建工作但无法编译它让我给出这个错误。 oracle论坛上有一个问题,它说我必须创建程序来包装它。 this?有什么解决方法
-- Created on 30.09.2014 by ALI.ORHAN
declare
-- Local variables here
i integer;
begin
-- Test statements here
dbms_scheduler.create_job(job_name => 'blabla'
,job_type => 'STORED_PROCEDURE'
,job_action => 'dingdongprocedure;'
,start_date => '30-OCT-14 10.00.00 PM'
,end_date => '15-JULY-08'
,repeat_interval => 'FREQ=WEEKLY BYDAY=TUE,FRI BYHOUR=10,13'
,enable => 'TRUE'
,comments => 'SUPREME COMMENT');
end;
在我从 PL/SQL Developer UI 创建作业后,我发现我的语法错误,新代码如下;
- 我使用 sys.dbms_scheduler.create_job 而不是 dbms_scheduler.create_job。我不知道差异,但这不是重要的改变。
- 我使用 to_date 来定义 start_date,作为一个新手,我发现这种做法更好。
-
重要我将 job_class 参数添加到“DBMS_JOB$”。 DBMS_JOB 是 Oracle RDBMS 的内置作业类。因此,您可以使用此查询找到所有工作:
select * from ALL_SCHEDULER_JOBS WHERE JOB_CLASS='DBMS_JOB$' -
重要我的间隔是错误的,你应该输入;在所有参数之间,如
repeat_interval => freq=weekly;byhour=10, 13 - 我的第一个作业代码有另一个语法错误,我使用 enable 而不是 enabled。
-
我将 auto_drop 设置为 false。我猜这个参数是用来在完成工作时放弃工作的。我的意思是,如果您创建一个从今天到下周每天都会发生变化的工作。在结束时间到达之后,这个工作就被放弃了。如果我错了,请纠正我。
sys.dbms_scheduler.create_job(job_name => 'BOMBASTICJOB' ,job_type => 'STORED_PROCEDURE' ,job_action => 'dingdongprocedure' ,start_date => to_date('30-09-2014 00:00:00' , 'dd-mm-yyyy hh24:mi:ss') ,end_date => to_date(null) ,job_class => 'DBMS_JOB$' ,repeat_interval => 'Freq=Weekly; ByDay=Tue, Fri; ByHour=10, 13' ,enabled => true ,auto_drop => false ,comments => '');
【问题讨论】:
标签: oracle plsql dbms-scheduler