ORA-28602: statement not permitted on tables containing bitmap indexes

文档解释

ORA-28602: statement not permitted on tables containing bitmap indexes

Cause: table has bitmap indexes and user is minimizing or nominimizing records_per_block

Action: drop all bitmap indexes before changing records_per_block

ORA-28602:表含有位图索引时,不允许执行此语句

官方解释

ORA-28602: statement not permitted on tables containing bitmap indexes

Cause: An attempt to perform an operation that is not allowed on tables containing bitmap indexes was made.

Action: Make sure that the statement does not use any of the operations prohibited on such tables, as specified in the documentation for the feature.

常见案例

当在表上运行一些DML或DDL语句时,如果在表上存在位图索引,则可能会出现如下ORA-28602错误:

SQL> insert into test_tbl values (1);

ORA-28602: 表含有位图索引,不允许执行此语句

一般处理方法及步骤

1. 首先,检查该错误是否由位图索引引起。

要检查表上是否存在位图索引,请使用以下查询:

SQL> select index_name, index_type from user_indexes where table_name = ‘TEST_TBL’;

INDEX_NAME INDEX_TYPE

—————— ———–

TEST_INDEX BITMAP

上述查询结果确实显示表上存在位图索引,因此我们确实需要处理ORA-28602错误。

2. 如果真的存在位图索引,则尝试使用下面允许操作的任一替代方案。

• 对位图索引上可以使用UPDATE实现以下形式的效果:UPDATE

• 实行Partion Exchange功能,来更新或删除某分区

• 对于未分区表,使用MERGE语句进行绘制或更新操作

• 允许使用删除SQL函数或 TRUNCATETABLE命令

• 不允许使用INSERT、 DROP或 ALTER TABLE 等命令

另外,您可以使用ALTER INDEX SHRINK SPACE命令,为正在维护的位图索引分配更多的空间。

你可能感兴趣的