프린트 하기

OS환경 : Oracle Linux6.8(64bit)


DB 환경 : Oracle Database 11.2.0.4


에러 : ORA-01754: a table may contain only one column of type LONG

long type 컬럼 2개가 있는 테이블 생성시 에러 발생

1
2
3
4
SQL> create table t1 (c1 long, c2 long);
*
ERROR at line 1:
ORA-01754: a table may contain only one column of type LONG



해결 방법 : 하나의 컬럼을 long type 대신 clob나 다른 type를 사용하여 테이블을 생성

하나의 컬럼을 long type 대신 clob나 다른 type를 사용하여 테이블을 생성

1
2
3
4
5
6
7
8
9
SQL> create table t1 (c1 clob, c2 long);
 
Table created.
 
SQL> desc t1
Name   Null?  Type
----- -----  -----
 C1              CLOB
 C2              LONG



원인 : 테이블 생성시 long type 컬럼은 하나만 생성해야하는데 2개의 long type를 지정해줘서 발생

오라클 공식 메뉴얼에는 아래와 같은 말이 있음

Do not create a table with LONG columns. Use LOB columns (CLOB, NCLOB, BLOB) instead. LONG columns are supported only for backward compatibility.


해석하면

LONG 컬럼이있는 테이블을 작성하지 마십시오. 대신 LOB 컬럼 (CLOB, NCLOB, BLOB)을 사용하십시오. 

LONG 열은 이전 버전과의 호환성을 위해서만 지원됩니다.


오라클에선 LONG 타입을 사용하지 말고 대신 LOB 컬럼을 사용하는걸 권장함



참조 : https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_7002.htm

https://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements001.htm#i45441