headiron 2009. 12. 9. 16:27
오라클에서 Field 사이즈를 조정하려고 했더니 

"ORA-30556: functional index is defined on the column to be modified"
메시지가 뜬다.

인터넷 뒤져 보니 functional index를 삭제한 후 조정하면 된다고 하는데

Enterprise Manager 나 다른 Tool에서 Functional index를 찾을 수 있는 방법이 없다.

결국 염대리님이
"select * from USER_IND_EXPRESSIONS;" 쿼리를 알려 주셔서 functional index를 찾을 수 있었고 해당 index를 drop 한 후 원래 나오던 column_expression대로 다시 생성을 하니 정상적으로 동작한다.


SQLPLUS>select * from USER_IND_EXPRESSIONS where table_name = '테이블명';

출력 결과 )
INDEX_NAME        TABLE_NAME     COLUMN_EXPRESSION       COLUMN_POSITION
XXXX                    YYYY                NLSSORT("ID",'nls_sort=''BINARY_CI''')    1

SQLPLUS>drop index XXXX;

SQLPLUS>ALTER TABLE XXXX MODIFY ( CCCC VARCHAR2(256));

SQLPLUS> create index XXXX on YYYY(NLSSORT("ID",'nls_sort=''BINARY_CI'''));


참조 : USER_IND_EXPRESSIONS Functional index expressions in user's indexes and indexes on user's tables