主要格式:
dbms_job.submit(job,What,next_date,interval,no_parse);
参数解析:
job: 这个值用来唯一标识一个工作
what: 执行的存储过程
next_date: 意思是下一次运行的时间(我的理解是第一次在什么时候执行what)
interval: 何时这个工作将被重执行(我的理解是下一次运行的时间)
no_parse: 参数指示此工作在提交时或执行时是否应进行语法分析——TRUE
例如:我要在每天的1点执行一次myproc,从今天开始,则可以如下所示:
declare
job number;
begin
dbms_job.submit(job,'myproc;',TRUNC(sysdate) + 1/24,'TRUNC(SYSDATE + 1) + 1/24');
-- 标识 存过 今天开始 下一次运行时间
end;
--解析:TRUNC的作用是只取sysdate的年月日
----------------------------------------------------------------------------------
查询job的信息,有如下视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行job相关信息。
如:
select * from dba_jobs
----------------------------------------------------------------------------------
运行JOB
说明:Run()过程用来立即执行一个指定的工作。这个过程只接收一个参数:
SQL> begin
2 dbms_job.run(:job);
3 end;
4 /
----------------------------------------------------------------------------------
在plSQL中我的做法是:
begin
dbms_job.run(3017);
end;
----------------------------------------------------------------------------------
删除JOB
SQL> begin
2 dbms_job.remove(:job);--:job可以用dba_jobs.job的值代替如:1198
3 end;
4 /
----------------------------------------------------------------------------------
dbms_job包含以下子过程:
Broken()过程。
change()过程。
Interval()过程。
Isubmit()过程。
Next_Date()过程。
Remove()过程。
Run()过程。
Submit()过程。
User_Export()过程。
What()过程。