zoukankan      html  css  js  c++  java
  • oracle 修改表结构及表索引 PLSQL脚本写法

    declare
      v_rowcount integer;
      v_rowcount1 integer;
      v_rowcount2 integer;
    begin
      select count(*) into v_rowcount from dual where exists(
        select * from col
          where tname = upper('bailcalcinfo')
            and cname = upper('operator_no') );
      if v_rowcount = 0 then
        execute immediate 'alter table bailcalcinfo add (operator_no    varchar2(18) default '' '' NOT NULL)';
      end if;
     
      select count(*) into v_rowcount1 from user_indexes where index_name ='IDX_BAILCALCINFO';
      if v_rowcount1 > 0 then
        select count(*) into v_rowcount2 from dual
        where exists(select 1 from user_ind_columns where index_name = 'IDX_BAILCALCINFO' and column_name = 'FUTU_EXCH_TYPE' and column_position = 1)
          and exists(select 1 from user_ind_columns where index_name = 'IDX_BAILCALCINFO' and column_name = 'CONTRACT_CODE' and column_position = 2)
          and exists(select 1 from user_ind_columns where index_name = 'IDX_BAILCALCINFO' and column_name = 'ENTRUST_BS' and column_position = 3)
          and exists(select 1 from user_ind_columns where index_name = 'IDX_BAILCALCINFO' and column_name = 'HEDGE_TYPE' and column_position = 4)
          and exists(select 1 from user_ind_columns where index_name = 'IDX_BAILCALCINFO' and column_name = 'OPERATOR_NO' and column_position = 5);
        -- 存在但是不正确,则删除索引
        if v_rowcount2 = 0 then 
          execute immediate 'drop index hs_futures.IDX_BAILCALCINFO';
        end if;
      end if;
      -- 未存在 OR 存在但是不正确,都要重建索引
      if v_rowcount1 = 0 or v_rowcount2 = 0 then 
        execute immediate 'CREATE INDEX hs_futures.IDX_BAILCALCINFO ON hs_futures.bailcalcinfo(futu_exch_type,contract_code,entrust_bs,hedge_type,operator_no)tablespace HS_FUTURES_IDX';
      end if;
    end;
    /

  • 相关阅读:
    bzoj 3670: [Noi2014]动物园
    bzoj 2878: [Noi2012]迷失游乐园
    51nod 1348 乘积之和
    51nod 1514 美妙的序列
    AtCoder Grand Contest 002 D
    bzoj 3451 Normal
    LOJ #6119. 「2017 山东二轮集训 Day7」国王
    51nod 1752 哈希统计
    计蒜客 百度地图的实时路况
    Codeforces 549F Yura and Developers
  • 原文地址:https://www.cnblogs.com/lonsine/p/3974232.html
Copyright © 2011-2022 走看看