• ORA-54033要修改的列由某个虚拟表达式使用column to be modified is used in a virtual column expression


    oracle 11g添加了新特性虚拟字段,而oracle 12c增加在多个表上收集统计信息。通过在12c版本提高查询性能,开始自动收集信息时会自动创建虚拟列。

    通过语句可以查询创建那些虚拟列。

    select column_name, data_default, hidden_column 
    from   user_tab_cols
    where  table_name = 'TAB';
    
    COLUMN_NAME                         DATA_DEFAULT                   HID
    ------------------------------     -----------------------------   ---
    SYS_STUYPW88OE302TFVBNC6$MMQXE    SYS_OP_COMBINED_HASH("X","Y")    YES
    Z                                                                  NO
    Y                                                                  NO
    X                                                                  NO

    可以通过语句删除和创建虚拟列

    exec dbms_stats.drop_extended_stats(user, 'tab', '(x, y)');
    
    alter table tab modify (y timestamp);
    
    select dbms_stats.create_extended_stats(user, 'tab', '(x, y)')
    from   dual;
    
    DBMS_STATS.CREATE_EXTENDED_STATS(USER,'TAB','(X,Y)')                           
    --------------------------------------------------------------------------------
    SYS_STUYPW88OE302TFVBNC6$MMQXE  

    pl sql删除表上虚拟列

    declare
           --类型定义
           cursor c_job
           is
           --查找统计扩展的隐藏列信息
           select  data_default from   user_tab_cols where  hidden_column='YES' and table_name = 'tab';
           --定义一个游标变量v_cinfo c_emp%ROWTYPE ,该类型为游标c_emp中的一行数据类型
           c_row c_job%rowtype;   
           sUser varchar(200);    
    begin  
           select user into sUser  from dual;
           for c_row in c_job loop
             --执行删除操作
             execute immediate 'begin dbms_stats.drop_extended_stats('''||sUser||''', ''tab'', '''||replace(replace(c_row.data_default,'SYS_OP_COMBINED_HASH',''),'"','')||'''); end;';
           end loop;
    end;
  • 相关阅读:
    EasyUI DataGrid undefined处理
    EasyUI Tabs
    EasyUI ComboBox ajax
    Spring Controller RequestMapping
    Spring前台填充数据
    关于Map集合的遍历总结
    mvc与三层结构终极区别
    关于cron4j的使用
    中国各个省市县的人口统计,echart展示
    windows 安装nodejs 和 npm
  • 原文地址:https://www.cnblogs.com/zhutao1015/p/5972070.html
Copyright © 2020-2023  润新知