DBMS_JOB包

一個dmbs_job定時作業的例子

create table a(test date);

create or replace procedure b as
begin
insert into a values(sysdate);
end;

--每分鐘執行一次
variable job1 number;
begin
dbms_job.submit(:job1,'b;',sysdate,'trunc(sysdate,''mi'')+1/1440');
end;
commit;
/

--馬上強制執行一次
begin
dbms_job.run(:job1);
end;
commit;
/

--刪除作業
begin
dbms_job.remove(23);
end;
commit;
/

--查看作業情況
select * from dba_jobs
select * from dba_jobs_running
select * from user_jobs

--每星期執行一次col_cust_id的統計分析
variable job1 number;
begin
dbms_job.submit(:job1,'dbms_stats.gather_table_stats (ownname=>''citictest'', tabname=>''col_cust_id'',estimate_percent=>50,cascade=>true);',sysdate,'trunc(sysdate,''dd'')+7');
end;
/

--查看最近分析日期
select dba_tables.last_analyzed,dba_tables.* from dba_tables where dba_tables.table_name='COL_CUST_ID'

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章