티스토리 뷰
728x90
반응형
What?
4000bytes 넘는 값을 mybatis 에 바인딩할 때 SUBSTR() 사용 시 ora-01461 발생.
테이블 컬럼이 CLOB 이라도 에러 발생.
INSERT SELECT 문에서도 에러 발생.
INSERT INTO TEST_TABLE
SELECT SUBSTR(#{INPUT}, 4000) /* ORA-01461 Error */
FROM DUAL;
Why?
Oracle 에서 VARCHAR2 최대 크기는 4000bytes.
SUBSTR() 에 입력 값이 String 타입으로 변환되어 4000bytes 이상이면 에러 발생.
Solution
Java 에서 입력 값을 substr() 처리 후에 mybatis SQL에서는 바인딩만 처리.
INSERT VALUE 문으로 변경.
INSERT INTO TEST_TABLE (INPUT)
VALUE (#{INPUT});
728x90
반응형
'DB' 카테고리의 다른 글
Oracle ORA-01401 SELECT 문에서 발생 (0) | 2021.10.14 |
---|---|
ORACLE NCHAR vs NVARCHAR2 (0) | 2021.10.07 |
Oracle 페이지 처리 (0) | 2020.05.26 |
Oracle 특수문자 검색 (0) | 2020.05.25 |
Oracle vs MySQL (0) | 2019.07.14 |
반응형
300x250