教资哪个最简单 教你快速掌握一个简单的Oracle定时任务
教你快速掌握一个简单的Oracle定时任务
一 在PLSQL中创建表
create table HWQY TEST ( CARNO VARCHAR ( ) CARINFOID NUMBER )
二 在PLSQL中创建存储过程
create or replace procedure pro_test AS carinfo_id number; BEGIN select s_CarInfoID nextval into carinfo_id from dual; insert into test(test carno test carinfoid) values(carinfo_id ); mit; end pro_test;
三 在SQL命令窗口中启动任务
在SQL>后执行
VARIABLE jobno number; begin DBMS_JOB SUBMIT(:jobno pro_test; SYSDATE sysdate+ / / ); mit; end; /
提交后提示
英文代码
四 跟踪任务的情况(查看任务队列)
SQL> select job next_date next_sec failures broken from user_jobs; JOB NEXT_DATE NEXT_SEC FAILURES BROKEN ? : : N
说明有一个任务存在了
执行select * from test t查看定时任务的结果 可以看出定时任务是正常执行了的
五 停止已经启动的定时任务:
先执行select job next_date next_sec failures broken from user_jobs;
以查看定时任务的job号

在SQL>中执行下面的语句停止一个已经启动的定时任务
begin dbms_job remove( ); mit; end; /
表示停止job为 的任务
执行后显示如下
PL/SQL procedure successfully pleted
六 查看进程数
show parameter job_queue_processes; 必须> 否则执行下面的命令修改 alter system set job_queue_processes= ;
七 再创建一个任务(每 分钟执行一次)
variable jobno number; begin dbms_job submit(:jobno pro_test; sysdate sysdate+ / / ); mit; end; /
建立一个定时任务后 在PLSQL中查看JOB 它的sql语句类似的是如下
begin sys dbms_job submit(job => :jobno what => pro_test; next_date => to_date( : : dd mm yyyy hh :mi:ss ) interval => sysdate+ / / ); mit; end; / 所以 创建一个任务的完整的格式是 variable jobno number; begin sys dbms_job submit(job => :jobno what => pro_test; next_date => to_date( : : dd mm yyyy hh :mi:ss ) interval => sysdate+ / / ); mit; end; / 系统会自动分配一个任务号jobno
八 执行select job next_date next_sec failures broken from user_jobs;
结果
lishixinzhi/Article/program/Oracle/201311/16558