15-10-19 23:48:04
分類: Oracle
--創建一次執行的匿名塊任務,成功調用一次後job消失
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'my_new_job2',
job_type => 'PLSQL_BLOCK',
job_action =>
'BEGIN
for i in 1 .. 5 loop
insert into t values (i);
end loop;
commit;
END;'
);
END;
--創建存儲過程代替匿名塊裏面的內容,對於數據量大的代碼很方便
create or replace procedure p_insert_t
as
BEGIN
for i in 1 .. 5 loop
insert into t values (i);
end loop;
commit;
END;
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => 'my_new_job2',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN p_insert_t; END;'
);
END;
--查看job的狀態
SELECT job_name, owner, program_name, program_owner, state, enabled
FROM dba_scheduler_jobs
WHERE owner NOT IN ('SYS', 'SYSTEM');
SELECT *
FROM dba_scheduler_jobs
WHERE owner NOT IN ('SYS', 'SYSTEM');
--執行job, enable job和run job兩種方式都可以調用job
--enable job之後自動執行job
BEGIN
DBMS_SCHEDULER.ENABLE ('my_new_job2');
END;
--run job
BEGIN
DBMS_SCHEDULER.RUN_JOB(
JOB_NAME => 'my_new_job2',
USE_CURRENT_SESSION => FALSE);
END;
--停止 job
BEGIN
DBMS_SCHEDULER.STOP_JOB('MY_NEW_JOB2');
END;
/
--刪除JOB
BEGIN
DBMS_SCHEDULER.DROP_JOB ('MY_NEW_JOB2');
END;