一个简单例子: 创建测试表
SQL> create table a(a date);表已创建。创建一个自定义过程
SQL> create or replace procedure test as
2 begin
3 insert into a values(sysdate);
4 end;
5 /过程已创建。创建JOB
SQL> variable job1 number;
SQL>
SQL> begin
2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440'); --每天1440分钟,即一分钟运行test过程一次
3 end;
4 /PL/SQL 过程已成功完成。运行JOB
SQL> begin
2 dbms_job.run(:job1);
3 end;
4 /PL/SQL 过程已成功完成。SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;时间
-------------------
2001/01/07 23:51:21
2001/01/07 23:52:22
2001/01/07 23:53:24删除JOB
SQL> begin
2 dbms_job.remove(:job1);
3 end;
4 /PL/SQL 过程已成功完成。
SQL> create table a(a date);表已创建。创建一个自定义过程
SQL> create or replace procedure test as
2 begin
3 insert into a values(sysdate);
4 end;
5 /过程已创建。创建JOB
SQL> variable job1 number;
SQL>
SQL> begin
2 dbms_job.submit(:job1,'test;',sysdate,'sysdate+1/1440'); --每天1440分钟,即一分钟运行test过程一次
3 end;
4 /PL/SQL 过程已成功完成。运行JOB
SQL> begin
2 dbms_job.run(:job1);
3 end;
4 /PL/SQL 过程已成功完成。SQL> select to_char(a,'yyyy/mm/dd hh24:mi:ss') 时间 from a;时间
-------------------
2001/01/07 23:51:21
2001/01/07 23:52:22
2001/01/07 23:53:24删除JOB
SQL> begin
2 dbms_job.remove(:job1);
3 end;
4 /PL/SQL 过程已成功完成。
job号是一个唯一标识,oracle自动分配
QL> declare
2 jobno number;
3 begin
4 dbms_job.submit(jobno,'pro;',sysdate,'sysdate+1/(24*60)');
5 commit;
6 end;
7 /
提交后,马上运行
dbms_job.submit(jobno,'pro;',sysdate,'sysdate+1/(24*60)');
中使用么,那还为什么要声明它呢?
2 如何配置job,是否要配置init.ora文件,是否要重启Oracle服务器
3 如何让job运行起来
与
dbms_job.remove(:job1);
中的job1是同一个值么?
dbms_job.submit(jobno,'pro;',sysdate,'sysdate+1/(24*60)');
如果不赋值,那么上面的值具体是多少?是随便给得么?
2 能不能直接回复,我的意思是调用dbms_job.run(:job1);后,编号为job1的job是否需要重
新启动Oracle服务器才能运行
3 请按我的要求直接回复,不要间接回答,对号入座。
不需重启,但是要保证
version 8i add :
job_queue_processes = 10
job_queue_interval = 1
version 9i add :
job_queue_processes = 10
不然的话就要设置,当然就要重启