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;
    /

  • 相关阅读:
    vue-cli常用配置
    浏览器进程线程时间循环、与vue netTick的实现原理
    WebSocket的兼容性
    hiper、sitespeed性能工具
    excel操作
    performance面板使用,以及解决动画卡顿
    axios设置了responseType: 'json‘’,ie问题
    docker服务重启
    Spring Boot AOP之对请求的参数入参与返回结果进行拦截处理
    python中几种单例模式的实现
  • 原文地址:https://www.cnblogs.com/lonsine/p/3974232.html
Copyright © 2011-2022 走看看