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