文档解释
ORA-30556: either functional or bitmap join index is defined on the column to be modified
Cause: An ALTER TABLE MODIFY COLUMN was issued on a column on which either a functional index or bitmap join index exists.
Action: Drop the functional or bitmap join index before attempting to modify the column.
ORA-30556错误是指尝试修改某个字段时该字段上已存在功能式或位图参与索引。
官方解释
常见案例
当用户尝试更改一个有功能性或位图索引的列时,会出现ORA-30556 错误,如:
SQL> alter table HR.product modify active_flag char(1);
结果:
ORA-30556: either functional or bitmap join index is defined on the column to be modified
一般处理方法及步骤
OA错误详细信息中信息很明确,因为字段上定义有功能式或位图参与索引,故而不能更改该字段,处理方法一般是先删除参与索引字段,然后对此字段进行更改,最后再重建参与索引字段,如:
SQL> drop index h.ind_active_flag; –先删除字段的参与索引
Table dropped.
SQL> alter table HR.product modify active_flag char(1); — 对字段进行更改
Table altered.
SQL> create bitmap index h.ind_active_flag on HR.product(active_flag); — 重建参与索引字段
Index created.