오라클에서 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



'개발자세상 > Database관련' 카테고리의 다른 글

오라클 실행계획 보기  (0) 2010.03.03
ORACLE 사용자 생성  (0) 2010.03.03
Oracle Table Column Rename  (0) 2009.10.28
오라클 Function Compile/ 생성시 Ora-00942 오류..  (1) 2009.06.22
impdp / expdp  (0) 2009.06.19
Posted by headiron
,