멀쩡히 잘되던게 이런 오류가 뜨기 시작했다..
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
------------------------------------------------------------------------------------------------
'DB > Oracle' 카테고리의 다른 글
procedure(프로시저)와 function(함수)의 차이 (0) | 2015.11.23 |
---|---|
오라클 DBMS_CRYPTO 암호화 (0) | 2015.11.19 |
Oracle Sequence (오라클 시퀀스) (0) | 2015.09.23 |
에이전트가 emd.properties을 소유하지 않는 사용자에 의해 시작되었다 - 중단 시작 (00709) (0) | 2015.09.23 |
[ant bulid] encode error(BufferOverflowException) (0) | 2015.09.22 |