【发布时间】:2019-10-05 06:22:07
【问题描述】:
code of oracle 我创建了一个作业调度程序,在表中插入 ID 和 sysdate,但是当我运行 select * from table;然后没有找到记录。
create or replace procedure job_schedule_demo_proc is
x number:=1;
y number;
begin
select max(id) into y from job_schedule_demo;
if ( y is null) then
insert into job_schedule_demo values (1,sysdate);
else
x:=y+1;
insert into job_schedule_demo values (x,sysdate);
end if;
commit;
end;
BEGIN
DBMS_SCHEDULER.create_job ( job_name=> 'test_full_job_definition',
job_type=> 'PLSQL_BLOCK',
job_action=> 'BEGIN job_schedule_demo_proc(); END;',
start_date=> SYSTIMESTAMP,
repeat_interval => 'freq=minutely; byminute=1; bysecond=0;',
end_date=> NULL,
enabled=> TRUE,
comments=> 'Job defined entirely by the CREATE JOB procedure.');
END;
【问题讨论】:
-
Shubham,请更新
job_type = 'STORED_PROCEDURE'而不是job_type=> 'PLSQL_BLOCK',看看这是否有什么不同。 -
@AnkitBajpai 当更改作业类型 = 'STORED_PROCEDURE' 然后给出错误。但是当我手动运行调度程序时,记录成功插入到表中。
-
错误是什么
-
13:17:20 第 1 行:ORA-27452: BEGIN job_schedule_demo_proc();结尾;是数据库对象的无效名称。
-
添加这个repeat_interval => 'FREQ=SECONDLY;INTERVAL=60' or FREQ=MINUTELY;INTERVAL=1;其中任何一个都可以工作