SQL Error: ORA-30556: either functional or bitmap join index is defined on the column to be modified

SQL Error: ORA-30556: either functional or bitmap join index is defined on the column to be modified

当我试图改变我的 table 的列长度时,我得到以下 Oracle 错误:

 SQL Error: ORA-30556: either functional or bitmap join index is defined on the column to be modified
 30556. 00000 -  "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.

我们如何改变列的大小?

无需删除索引并更改列大小,然后再次创建索引。

我们在 Oracle 中有另一种方法,即:

  1. 首先禁用索引。 (例如:ALTER INDEX index_cust ON CUSTOMER DISABLE

  2. 然后更改 Customer 的列大小 table

  3. 然后启用索引。 (例如:ALTER INDEX index_cust ON CUSTOMER REBUILD

注意:这仅对函数索引有效