首页 > 数据库 > Oracle > ORACLE JOB
DBMS_JOB.SUBMIT(
jobid OUT BINARY_INTEGER,
what IN VARCHAR2,
NEXT_DATE IN DATE DEFAULT SYSDATE,
interval IN VARCHAR2 DEFAULT 'NULL'
)
1.第1个参数jobid:JOB的ID,此处只能放类型为number的变量,这个值用来唯一标识一个工作。当提交任务后,系统会返回一个JOB的ID,会写到此参数变量中。用来唯一地标示一个任务。该参数既可由用户指定也可由系统自动赋予。
2.第2个参数what:是一个是将被执行的PL/SQL代码块,或者是存储过程名,如果是存储过程名,则要在后面添加“;”号。
3.第3个参数next_date:指定何时将运行这个工作。一个时间类型变量而不是一个字符串,所以需要注意不要把它当成字符串,不需要对该参数加引号。用来调度任务队列中该任务下一次运行的时间。
4.第4个参数interval,也就是最后一个参数interval是一个字符串类型,注意添加引号。next_date是建立这个job时希望第一次运行的时间,interval是next_date之后下一次运行的时间,当第一次运行后,next_date的值就是interval的值了,interval的值又代表这次next_date时间之后下一次的运行时间。
declare
jobid int;
begin
dbms_job.submit(jobid,'myproc;',sysdate,'sysdate+(10)/(24*60*60)');
dbms_output.put_line(jobid);
end;
这里输出的41是系统给这个job的进程号或者称为任务编号
begin
dbms_job.remove(41);
end;
这里函数dbms_job.remove()括号里面的参数是进程号,就是上一个例子里面说的jobid,这里的jobid一定
要是已经存在的,否则会报错。
SQL> exec dbms_job.change(42,'update emp set sal=sal+10 where ename=''SCOTT'';',NULL,NULL);
需要在sql命令窗口中执行,参数和submit的参数一样。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31537584/viewspace-2217981/ ,如需转载,请注明出处,否则将追究法律责任。