Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

"ORA-01461:can bind a LONG value only for insert into a LONG column" 라는 오류메시지

Oracle 디비를 사용하면서 Java(JSP)쪽에서 Insert를 하는 상황에서 테이블에는 LONG타입이 전혀 없을 뿐더러 Varchar2를 사용하고 있는 컬럼에 영문만 넣으면 문제가 없는데 한글을 넣으려고 하면 저런 오류메시지가 나타난다.(바로바로 포스팅 해야되는데 좀 시간이 지나니까 정확한 오라클 버전이 기억안나네. ㅡ..ㅡ)

ORA-01461:can bind a LONG value only for insert into a LONG column

참으로 당황스럽던 오류메시지.... 의미만 보자면 Long타입 컬럼에는 Long값만 넣어라는 건데 LONG을 지정한 컬럼이 있어야 말이지...

이게 머야 하면서 한참 찾았는데 해결책은 의외로 간단했던....

JDBC의 버그문제이다.

Oracle Database 10g Release 2 (10.2.0.1.0) JDBC Drivers  에서 해결이 되었다. 링크는 이 곳!!

위 버전 JDBC의 Read Me파일을 보면 아래와 같은 내용이 나온다.


BUG-4426152
KPRB driver throws ORA-01461 for OraclePreparedStatement.setCharacterStream() of 1MB or more data into database LONG and 4k byte into Varchar2 columns in one statement.

JDBC은 Release 2로 이상으로 교체해 주면 간단히 해결...

2008/06/30 02:14 2008/06/30 02:14