orale创建任务过程(Job)

 

 第一步:创要定时执行的存储过程(plsql中执行即可)  

create or replace procedure p_rebuild_all_index
as
sqlt varchar(1000);
tablespace_name varchar(1000);
v_sucess varchar(1000);
begin
tablespace_name:='TYBOOKDB';
v_sucess:='重建成功';
for idx in (select index_name, tablespace_name, status,table_name from user_indexes where upper(tablespace_name)=upper(tablespace_name) and status='VALID' and temporary = 'N' and index_type='NORMAL') loop
begin
sqlt := 'alter index ' || idx.index_name || ' rebuild ';
dbms_output.put_line('表名:'||idx.table_name);
dbms_output.put_line('索引名称:'||idx.index_name);
dbms_output.put_line('执行语句:'||sqlt);
EXECUTE IMMEDIATE sqlt;
--错误后循环继续执行。
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(SQLERRM);
v_sucess:='重建失败';
end;
end loop;
--写日志,成功或失败
insert into t_tybook_back_log
( user_loginname, login_date, oper_type, oper_date, oper_des, oper_code, model_name)
values
( 'oracle_job', sysdate, '重建索引任务', sysdate, v_sucess, '', '');

end;
 

 

 第二步:通过PL/SQL创建JOB,约定每天早上2:00执行此存储过程

 

declare job number;
begin
sys.dbms_job.submit(job ,'p_rebuild_all_index;',to_date('18-10-2012 02:00:00', 'dd-mm-yyyy hh24:mi:ss') ,'sysdate+1');
end;
 

第三步:启动JOB任务


begin
exec dbms_job.run(:job1);
end;
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值