Oracle 12c 에서 원래 데이터타입 'Long' 으로 사용하고 있다, Oracle 의 다른 버전들도 함께 사용해야 한다는 사실을 알게 되었다.

data type 'Long'을 'Clob'로 바꾸는 도중, 아래와 같은 에러를 만났다.

 

확인해 보니 insert 하려는 row들은 1000개가 넘어있었고, 

Mybatis 상 select-insert 중에 해당 에러가 발생하였다.

'clob'는 4GB까지 저장이 가능하지만, mybatis에 바인딩 시, 4000 bytes 가 넘으면 잘라서 저장해줘야 한다는 것...

 

rdbms를 오라클만 사용하는 게 아니라서 결국 공식문서를 뒤져보기로 했다 ,

확인해 보니

https://mybatis.org/mybatis-3/ko/configuration.html#typeHandlers 

 

mybatis – 마이바티스 3 | 매퍼 설정

매퍼 설정 마이바티스 XML 설정파일은 다양한 설정과 프로퍼티를 가진다. 문서의 구조는 다음과 같다.: configuration properties 이 설정은 외부에 옮길 수 있다. 자바 프로퍼티 파일 인스턴스에 설정할

mybatis.org

 

 

아래와 같은 샘플코드를 이용하여 작성하니 성공!

  <insert id="insert2">
      insert into users2 (id, name, funkyNumber, roundingMode) values (
        #{id}, #{name}, #{funkyNumber}, #{roundingMode, typeHandler=org.apache.ibatis.type.ClobTypeHandler}
      )
  </insert>

 

아래의 공식을 확인 후, 필요한 타입핸들러를 작성하면 된다 !

https://mybatis.org/mybatis-3/ko/configuration.html#typeHandlers

 

mybatis – 마이바티스 3 | 매퍼 설정

매퍼 설정 마이바티스 XML 설정파일은 다양한 설정과 프로퍼티를 가진다. 문서의 구조는 다음과 같다.: configuration properties 이 설정은 외부에 옮길 수 있다. 자바 프로퍼티 파일 인스턴스에 설정할

mybatis.org

 

 

+ Recent posts