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 commit;
4 end;
5 /PL/SQL 过程已成功完成。运行JOB
SQL> begin
2 dbms_job.run(:job1);
3 end;
4 /PL/SQL 过程已成功完成。
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 commit;
4 end;
5 /PL/SQL 过程已成功完成。运行JOB
SQL> begin
2 dbms_job.run(:job1);
3 end;
4 /PL/SQL 过程已成功完成。
begin
DBMS_JOB.SUBMIT(:jobno,
'Procdemo;',
SYSDATE, 'trunc(sysdate,'D')+25/24');//每天凌晨1点执行过程Prodemo
commit;
end;
/
---------------------------------------------------------------
oracle可以定时执行过程
这个功能叫作业(JOB)。
详细使用方法可以参考oracle文档中的dbms_job包的使用方法
一个简单例子: 创建测试表
SQL> create table test(rq date);表已创建。创建一个自定义过程
SQL> create or replace procedure p_test as
2 begin
3 insert into test values(sysdate);
4 end;
5 /过程已创建。创建JOB
SQL> variable job1 number;
SQL>
SQL> begin
2 dbms_job.submit(:job1,'p_test;',sysdate,'sysdate+1'); --每天运行p_test过程一次
3 end;
4 /PL/SQL 过程已成功完成。运行JOB
SQL> begin
2 dbms_job.run(:job1);
3 end;
4 /PL/SQL 过程已成功完成。
删除JOB
SQL> begin
2 dbms_job.remove(:job1);
3 end;
4 /PL/SQL 过程已成功完成。