数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

教你快速掌握一个简单的Oracle定时任务


发布日期:2020年09月04日
 
教你快速掌握一个简单的Oracle定时任务
在PLSQL中创建表

create table HWQYTEST( CARNO VARCHAR() CARINFOID NUMBER)

在PLSQL中创建存储过程

create or replace procedure pro_testAScarinfo_id number;BEGINselect s_CarInfoIDnextval into carinfo_id from dual;insert into test(testcarnotestcarinfoid) values(carinfo_id);commit;end pro_test;

在SQL命令窗口中启动任务

在SQL>后执行

VARIABLE jobno number;beginDBMS_JOBSUBMIT(:jobno pro_test;SYSDATEsysdate+//); commit;end;/

提交后提示

英文代码

跟蹤任务的情况(查看任务队列)

SQL> select jobnext_datenext_secfailuresbroken from user_jobs; JOB NEXT_DATE NEXT_SEC FAILURES BROKEN ?:: N

说明有一个任务存在了

执行select * from test t查看定时任务的结果可以看出定时任务是正常执行了的

停止已经启动的定时任务:

先执行select jobnext_datenext_secfailuresbroken from user_jobs;

以查看定时任务的job号

在SQL>中执行下面的语句停止一个已经启动的定时任务

begin dbms_jobremove();commit;end;/

表示停止job为的任务

执行后显示如下

PL/SQL procedure successfully completed

查看进程数

show parameter job_queue_processes;必须>否则执行下面的命令修改alter system set job_queue_processes=;

再创建一个任务(每分钟执行一次)

variable jobno number;begindbms_jobsubmit(:jobno pro_test;sysdatesysdate+//);commit; end; /

建立一个定时任务后在PLSQL中查看JOB它的sql语句类似的是如下

beginsysdbms_jobsubmit(job => :jobnowhat => pro_test;next_date => to_date( :: ddmmyyyy hh:mi:ss)interval => sysdate+//);commit;end;/所以创建一个任务的完整的格式是variable jobno number;beginsysdbms_jobsubmit(job => :jobnowhat => pro_test;next_date => to_date( :: ddmmyyyy hh:mi:ss)interval => sysdate+//);commit;end;/系统会自动分配一个任务号jobno

执行select jobnext_datenext_secfailuresbroken from user_jobs;

结果

JOB NEXT_DATE NEXT_SEC FAILURES BROKEN AM :: :: N PM :: :: N PM :: :: N

上一篇:OBIEE和Oracle数据挖掘

下一篇:常用数据库JDBC连接写法大全