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