본문 바로가기

DB/Oracle

[에러]ORA-24816

멀쩡히 잘되던게 이런 오류가 뜨기 시작했다..

Caused by: java.sql.SQLException: ORA-24816: 실제 LONG 또는 LOB 열 뒤에 확장된 비LONG 바인드 데이터가 제공됨

밑에 출처로 해결함

------------------------------------------------------------------------------------------------

발생현상 : varchar2(4000 byte) 컬럼이 있는데..

               내용이 적을땐 들어가고 내용이 일정 분량이 넘어가면 입력되지 않는다.

               컬럼길이 문제인지 알았으나 내용의 분량을 확인하니 그게 아님.

               오라클의 설정확인했으나 utf-8이 아니므로 설정문제도 아님.

               (utf-8인 경우 한글이 한글자에 2byte가 아니라 3byte 차지함)

              로그 확인 결과 위와 같은 에러가 해당 컬럼이 문제가 아니라 long형이나

              clob 컬럼이 문제라고 생각되어짐.(오라클 버그인거 같음)

 

해결방법 : long 컬럼이나 clob 컬럼을 맨 나중으로 보내서 해결한다.

               col2long이 long 컬럼, col3이 해당컬럼일 경우                

 

               이전 코드

               insert into test(col1, col2long, col3 ) values( ? , ? , ? );

               이후 코드

              insert into test(col1, col3, col2long ) values( ? , ? , ? );

[출처] ORA-24816 에러 발생|작성자 신곤


출처ㅣhttp://blog.naver.com/jkshin9/80072457802

------------------------------------------------------------------------------------------------