Consultor Eletrônico



Kbase P75415: Getting error ORA-30556 in ORACLE against an index that has DESC components
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   4/8/2004
Status: Unverified

FACT(s) (Environment):

Progress 9.1x

FACT(s) (Environment):

Oracle DataServer

FACT(s) (Environment):

Oracle

SYMPTOM(s):

Getting error ORA-30556 when trying to perform an ALTER command within ORACLE

Getting error ORA-30556 when trying to alter a shadow column within ORACLE

Getting error ORA-30556 when trying to alter a U##column within ORACLE

Getting error ORA-30556 when trying to increase column width for a shadow column, U##column, within ORACLE

Error: ORA-30556 functional index is defined on the column to be modified

Getting no errors when trying to increase column width for a regular column, without the U##, within ORACLE

Example of alter command used;
alter table xyz modify U##zzz varchar2(8);

The index on table is descending or one or more of the components within the index are in descending order

CAUSE:

This issue is related to Oracle?s implementation of descending indices. If an index contains a descending component, Oracle creates a hidden field whose definition is the same as the actual field. This field is not part of the visual table definition and can not be altered. Therefore, if the actual index component is being changed, you must delete the index first so the hidden field will also be deleted. Then you can alter the field and recreate the index.

FIX:

1. Drop the index
2. Increase the size of the column, U##column
3. Add the index again on the table