프린트 하기

OS환경 : Oracle Linux 7.4 (64bit)

 

DB 환경 : Oracle Database 19.3.0.0

 

에러 : ORA-00997: illegal use of LONG datatype

테이블 생성시 ctas로 long type 컬럼을 넣어 만들때 발생하는 에러

테이블 생성 시도

1
2
3
4
5
6
7
8
9
10
SQL>
create table temp_high1 as 
select table_name, partition_name, high_value
from dba_tab_partitions
where table_name = 'PTABLE';
 
select table_name, partition_name, high_value
                                   *
ERROR at line 2:
ORA-00997: illegal use of LONG datatype

에러가 발생함

 

 

해결 방법 : to_lob 를 이용해 clob 형식으로 변환 후 생성

to_lob 를 사용해서 테이블 생성

1
2
3
4
5
6
7
SQL>
create table temp_high2 as 
select table_name, partition_name, to_lob(high_value) as high_value
from dba_tab_partitions
where table_name = 'PTABLE';
 
Table created.

정상적으로 생성됨

 

 

원인 : 정확한 이유는 찾지못함

테이블당 하나의 long 타입의 컬럼을 가질수 있다고 하는데

현재 예제에선 하나의 long 타입만 넣었는데도 에러가 발생함

정확한 이유는 찾지못함

 

 

참조 : 361716.1

https://stackoverflow.com/questions/27523530/oracle-error-inconsistent-datatypes-expected-char-got-long

https://positivemh.tistory.com/969

 

오라클 19c 파티션 테이블 high_value 컬럼 잘라서 보는 방법

OS환경 : Oracle Linux 7.6 (64bit) DB 환경 : Oracle Database 19.3.0.0 방법 : 오라클 19c 파티션 테이블 high_value 컬럼 자르는 방법 오라클에서 파티션테이블이 존재하는 경우 해당 파티션의 high_value를 보기 위해

positivemh.tistory.com