code of oracle 我创建了一个作业调度程序,在表中插入一个sysdate的ID,但是当我运行时,从表中选择*;然后没有记录。
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;
答案 0 :(得分:0)
您尝试手动运行该过程吗?
检查此视图以获取有关作业运行状态的其他详细信息,您将获得一些线索。
“ DBA_SCHEDULER_JOB_RUN_DETAILS”
答案 1 :(得分:0)
只需用job_action =>'job_schedule_demo_proc;'替换job_action。 Job_type应该保持相同的PLSQL_BLOCK