一在PLSQL中創建表
create table HWQYTEST
(
CARNO VARCHAR()
CARINFOID NUMBER
)
二在PLSQL中創建存儲過程
create or replace procedure pro_test
AS
carinfo_id number;
BEGIN
select s_CarInfoIDnextval into carinfo_id
from dual;
insert into test(testcarnotestcarinfoid) values(carinfo_id);
commit;
end pro_test;
三在SQL命令窗口中啟動任務
在SQL>後執行
VARIABLE jobno number;
begin
DBMS_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;
begin
dbms_jobsubmit(:jobno pro_test;
sysdatesysdate+//);
commit;
end;
/
建立一個定時任務後在PLSQL中查看JOB它的sql語句類似的是如下
begin
sysdbms_jobsubmit(job => :jobno
what => pro_test;
next_date => to_date( :: ddmmyyyy hh:mi:ss)
interval => sysdate+//);
commit;
end;
/
所以創建一個任務的完整的格式是
variable jobno number;
begin
sysdbms_jobsubmit(job => :jobno
what => 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
From:http://tw.wingwit.com/Article/program/Oracle/201311/16558.html