[TIL] 240224 - SQL too large 에러

황지원·2024년 2월 27일

TIL

목록 보기
7/15

내용

  • Tibero7 DB 상에 데이터를 Insert 하는 과정에서 다음과 같은 에러 발생
    [02.24/13:56:39.774] [thread=service-worker-1-91] [trace=FFFFFFFF00000000000000000000018D82851409] [span=0000000800006EC6] ERROR saveMultiEntity.java:45 - error
    java.sql.SQLDataException: JDBC-11048:"TEST"."ENTITY"."ENTITY_NAME" The value is too large for the column. (Actual value: 113, Maximum value: 100)
    		at com.tmax.tibero.jdbc.err.TbError.makeSQLException(Unknown Source) ~[tibero7-jdbc.jar:?]
    		at com.tmax.tibero.jdbc.err.TbError.newSQLException(Unknown Source) ~[tibero7-jdbc.jar:?]
    		at com.tmax.tibero.jdbc.msg.common.TbMsgError.readErrorStackInfo(Unknown Source) ~[tibero7-jdbc.jar:?]
    		............
    		at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.79.Final.jar:4.1.79.Final]
    		at java.lang.Thread.run(Thread.java:833) [?:?]
  • 단순히 Insert를 진행하는 코드상의 에러 또는 DB 용량이 초과 때문이라고 생각하였지만 다른 이유가 있었다.

해결

  • 해당 이슈의 경우 DB 테이블상에 부여한 데이터의 크기보다 큰 데이터를 적재하는 경우에 발생하는 에러이다.
    • DB 상에는 해당 ENTITY_NAMEVARCHAR(100)으로 되어있었지만 100자를 초과한 데이터를 적재함
  • 해당 이슈를 해결하기 위해 입력하는 데이터를 전처리 하여 VARCHAR(100)에 맞는 형태로 변경
profile
함께 도전하고 성장하는 어린 꿀벌, 주니어 개발자 황지원 입니다

0개의 댓글