컬럼명을 rename 또는 drop 하고자 할 때 아래와 같이 오류가 발생하는 경우가 있음
"ORA-54032: 이름을 바꿀 열이 가상 열 표현식에서 사용되었습니다."
1. 원인 : 해당 컬럼이 virtual column으로 만들어져 있음. 사용자가 명시적으로 안만들었더라도 12c 버전부터 새로 생긴 기능인 extended statistics 기능 중에 하나가 다수의 column에 대한 SQL optimizer statistics를 (자동으로) 생성 수집하는 것으로 이 기능 때문에 virtual column이 자동으로 생성됨.
2. 확인방법
select table_name, column_name, data_type, hidden_column,data_default
from user_tab_cols
where table_name ='TABLE_NAME' and virtual_column = 'YES';
3. 처리방법
① extended statistics drop
BEGIN
dbms_stats.drop_extended_stats(
ownname => 'OWNER', tabname => 'TABLE_NAME', extension => '(COL1,COL2)' ) ;
END;
/
② 2번의 확인 쿼리로 drop된 걸 확인한 후에 rename, drop이 가능함
③ extended statistics는 아래 쿼리로 다시 추가해도 되고, 아니면 db에서 알아서 생성하므로 그냥 놔둬도 됨
DECLARE
l_cg_name VARCHAR2(30);
BEGIN
l_cg_name
:= DBMS_STATS.create_extended_stats( ownname => 'OWNER', tabname =>
'TABLE_NAME', extension => '(COL1,COL2)'
);
END;
/
'ORACLE' 카테고리의 다른 글
expdp/impdp (0) | 2014.12.31 |
---|---|
Oracle Instant Client 사용 방법 (0) | 2014.03.28 |
Oracle 12c 서버 설치 후 ORA-28040 오류 발생 (0) | 2013.12.30 |
Oralce Archive Log Mode 셋팅 (0) | 2013.12.30 |
Oracle data file, redo log 위치 변경하기 (0) | 2013.12.24 |
ORA-24247: network access denied by access control list (ACL) (0) | 2013.09.05 |
OLE DB Provider 구분 (32bit / 64bit) (0) | 2012.07.23 |
다른 Tablespace로 Import 하는 방법 (0) | 2012.02.07 |
to_char를 이용해 날짜를 문자로 변환할 때 언어 선택 (0) | 2011.02.25 |
LOB 테이블스페이스 이동 (0) | 2010.10.11 |