본문 바로가기

myBatis/iBatis

[mybatis] oracle 연동시 "Error setting null parameter" (java.sql.SQLException: 부적합한 열 유형)

mybatis 에서 insert/update 시 mssql 에서는 안나는데 오라클에서는 아래와 같은 에러가 난다.

<에러구문>
org.springframework.jdbc.UncategorizedSQLException: Error setting null parameter.  Most JDBC drivers require that the JdbcType must be specified for all nullable parameters. Cause: java.sql.SQLException: 부적합한 열 유형
; uncategorized SQLException for SQL []; SQL state [null]; error code [17004]; 부적합한 열 유형; nested exception is java.sql.SQLException: 부적합한 열 유형

<해결책>
sqlMap 파일의 쿼리에서 아래와 같이 NOT NULL 컬럼이 아닌 컬럼에 jdbcType을 지정해 주면 된다.

INSERT INTO test (test_id, test_nullable_column)
VALUES (#{testId}, #{testNullableColumn,jdbcType=VARCHAR})

UPDATE test
SET test_nullable_column = #{testNullableColumn,jdbcType=VARCHAR}
WHERE test_id = #{testId}

 

출처 :  http://blog.naver.com/goolungsoi/10113268460