在测试分区表时,对包含数据的分区进行truncate后,再次对分区表进行insert操作,提示ORA-26026错误
处理 ORA-26026 问题的方式很简单, 通过alter index ... rebuild online 对索引重建一下就能解决问题。
点击(此处)折叠或打开
- SQL> exec dbms_stats.gather_table_stats(ownname => 'testtemp',tabname => 'record_partition',degree => 3);
-
- PL/SQL procedure successfully completed
-
- SQL> select table_name,partition_name,num_rows FROM user_tab_partitions order by 1,2;
-
-
TABLE_NAME PARTITION_NAME NUM_ROWS
------------------------------ ------------------------------ ----------
RECORD_INDEX PART_011 7055568
RECORD_INDEX PART_012 5231180
RECORD_INDEX PART_013 8568201
RECORD_PARTITION PART01_2013 99986
RECORD_PARTITION PART02_2014 0
RECORD_PARTITION PART03_2015 0
RECORD_PARTITION PART04_2016 13
RECORD_PARTITION_HASH PART01
RECORD_PARTITION_HASH PART02
RECORD_PARTITION_HASH PART03
RECORD_PARTITION_HASH PART04
11 rows selected - SQL> alter table record_partition truncate partition PART01_2013;
-
- Table truncated
-
- SQL> exec dbms_stats.gather_table_stats(ownname => 'testtemp',tabname => 'record_partition',degree => 3);
-
- PL/SQL procedure successfully completed
-
- SQL> select count(*) from RECORD_PARTITION;
-
- COUNT(*)
- ----------
- 13
- SQL> alter table record_partition truncate partition PART04_2016;
-
- Table truncated
-
- SQL> exec dbms_stats.gather_table_stats(ownname => 'testtemp',tabname => 'record_partition',degree => 3);
-
- PL/SQL procedure successfully completed
-
- SQL> insert /*+ append */ into record_partition select * from record ;
-
- insert /*+ append */ into record_partition select * from record
-
- ORA-26026: 唯一的索引 TESTTEMP.SYS_C0035273 最初处于无法使用的状态
-
- SQL>
- SQL>
点击(此处)折叠或打开
- SQL> alter index TESTTEMP.SYS_C0035273 rebuild online;
-
- Index altered
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27039319/viewspace-2121128/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27039319/viewspace-2121128/