一在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