More

오라클 LONG 값은 LONG 열에 삽입할 때만 바인드할 수 있습니다 라고 나올때 해결법 ORA-01461

ckeditor사용 중 에디터에 데이터 목록이 들어있는 30줄에 3칸정도 테이블을 작성해 업데이트 하려고 했더니 

ORA-01461 LONG 값은 LONG 열에 삽입할 때만 바인드할 수 있습니다 

라는 메시지가 나오면서 업데이트 실패했습니다. 

ORA-01461


ORA-01461 원인

처음엔 VARCHAR2로 되어있는 테이블 컬럼값을 늘리면 해결될 줄 알았는데 VARCHAR2 최대값인 4000까지 늘려도 같은 메시지가 계속 나왔습니다. 

VARCHAR2-최대값

기존 컬럼, VARCHAR2 최대값인 4000이지만 안들어갑니다

에디터에서 작성한 A4용지 한장 분량 데이터 크기가 이렇게 클줄 몰랐네요. ORA-01461은 컬럼 최대값 이상인 LONG타입 데이터를 집어넣을 때 생긴다고 합니다. 



CLOB 컬럼으로 변경하여 해결

기존에 쓰던 데이터 유형 VARCHAR2로는 컬럼 크기를 더이상 증가 시킬 수 없기 때문에 CLOB으로 변경했습니다. 변경할 때 주의해야 할 점은 VARCHAR2로 설정되어 있는 컬럼은 CLOB으로 변경이 안됩니다.

VARCHAR2-CLOB-변경실패

VARCHAR2 컬럼을 CLOB으로 변경할 때 실패하는 모습


컬럼 데이터를 싹 비우고 변경해봤는데 그래도 변경이 안되네요. 아예 컬럼을 새로 만들던가 아니면 CLOB유형 컬럼을 만들고 기존 VARCHAR2에서 사용하던 데이터를 CLOB으로 옮기고 기존 컬럼을 삭제 하는 방향으로 해야합니다. 저는 만든지 얼마 안된 테이블이라 컬럼 삭제 후 CLOB유형 컬럼을 만들어 사용했습니다.

clob-컬럼으로-변경

CLOB유형 컬럼을 다시 생성한 모습