日期:2014-05-16  浏览次数:20441 次

oracle里面job调用存储过程

1、建立测试表

?????? create table a(a date);

2、创建存储过程

create or replace procedure b as
begin
???insert into a values(sysdate);
end;
/

3、提交创建job

variable aaa number;

begin
???dbms_job.submit(:aaa,'b;',sysdate,'sysdate+1/1440');
???commit;
end;
/

4、执行job

begin
? ?dbms_job.run(:aaa);
end;

哥们在做得时候没有留意第3步里面的一个分号结果折腾了2天,原来这么简单啊“;”

错误:

;ERROR 位于第 1 行:
ORA-06550: 第 1 行, 第 95 列:
PLS-00103: 出现符号 "END"在需要下列之一时:
:= . ( @ % ;
符号 ";" 被替换为 "END" 后继续。
ORA-06512: 在"SYS.DBMS_JOB", line 79
ORA-06512: 在"SYS.DBMS_JOB", line 136
ORA-06512: 在line 2

?

;5、查看任务结果

select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;

6、删除JOB

?begin
??? ?dbms_job.remove(:aaa);
?end;