重建对象索引

create or replace procedure CC_REBUILD_IDX(O_User         in Varchar2,
                                           IDX_TABLESPACE in Varchar2) is
  IndexName   varchar2(255);
  v_ErrorText varchar2(1000);
  Ret         number(2);
  cursor get_Index is
    SELECT index_name FROM all_indexes WHERE owner = O_User;
begin
-- 重建用户下的所有索引到一表空间
  open get_Index;
  loop
    fetch get_Index
      into IndexName;
    begin
      execute immediate 'alter index ' || IndexName ||
                        ' rebuild tablespace ' || IDX_TABLESPACE;
      commit;
    exception
      when others then
        v_ErrorText := IndexName || lpad(to_char(SQLCODE), 5, '0') ||
                       ' 错误原因为:' || SUBSTR(SQLERRM, 1, 200);
        INSERT INTO T_errorlog (errorlogid, errocontent) VALUES (CMS_ERRINFO_SEQ.Nextval, v_ErrorText);
        commit;
    end;
    exit when get_Index%notfound; -- 无此会死循环
  end loop;
  close get_Index;

end CC_REBUILD_IDX;
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值