1:创建job:
方式一:命令窗口执行
procedure submit(job out binary_integer,
what in varchar2,
next_date in date,
interval in varchar2,
no_parse in boolean:=False)
varivalbe job1 number;
begin
sys.dbms_job.submit(job => :job,
what => '要调用的方法;',
next_date => to_date('06-03-2014 09:07:00', 'dd-mm-yyyy hh24:mi:ss'),
interval => 'trunc(sysdate+1)+(1/24*9)+(1/24/60*7)+(1/24/60/60*0)');
commit;
end;
方式二:在plSQL中的做法
declare
job number;
begin
sys.dbms_job.submit(job,'prc_g_test;',sysdate,'trunc(sysdate+1)+(1/24*9)+(1/24/60*7)+(1/24/60/60*0)');
end;
'要调用的方法‘可以是一个存储过程,也可以是一个包中的方法(包名.方法).
如:
2:
/*创建一个存储过程也就是所要'要调用的方法'*/
create or replace procedere prc_g_test is
begin
insert into emp values(......);
end prc_g_test;
综上描述表明,每天9:07:00住emp表中入一条数
3、查看创建的job
查看相关job信息
1、相关视图
dba_jobs
all_jobs
user_jobs
dba_jobs_running 包含正在运行job相关信息。
如:
select * from all_jobs --for update;
4、运行JOB
说明:Run()过程用来立即执行一个指定的工作。这个过程只接收一个参数:
SQL> begin
2 dbms_job.run(:job);
3 end;
4 /
----------------------------------------------------------------------------------
在plSQL中的做法是:
begin
dbms_job.run(3017);
end;
----------------------------------------------------------------------------------
5、删除JOB
SQL> begin
2 sys.dbms_job.remove(:job);--:job可以用dba_jobs.job的值代替如:1198
3 end;
4 /
*/
在plSQL中删除job的做法是:
begin
dbms_job.remove(198);--198是具体的job
end;