by 아플라 [SQL Query] Oracle MyBatis [2019.05.27 13:57:05]
INSERT INTO TABLE ( A (Number(19,6) 입니다..) ) VALUES ( COALESCE(#{PARAM}, 0) )
Java에서 위의 쿼리를 myBatis를 이용해 실행하는데 에러가 발생합니다.
파라미터 대입이 끝나고 실행되는 실제 쿼리는 이러했습니다.
INSERT INTO TABLE ( A ) VALUES ( COALESCE(NULL, 0) )
이 쿼리를 실행했더니 Java 콘솔창에 " ORA-00932 : 일관성 없는 데이터 유형 CHAR가 필요한데 NUMBER임 " 이런 에러로그가 남았습니다.
그런데 Toad에서 직접 쿼리실행을 해보니 아무런 오류 없이 쿼리가 정상 실행되었습니다.
컬럼 데이터타입도 수도없이 확인해봤지만 Number가 들어가는게 맞는데 자꾸 CHAR가 필요하다고 하니 이유는 잘 모르겠지만 CHAR를 필요로하니 쿼리를 바꿔보았습니다.
COALESCE(#{PARAM}, '0') 로 변경해주니까 잘 되더군요.
왜 이런 현상이 발생하는걸까요 ??
PS. SQL은 문제가 발생하는 부분만 간략하게 올렸습니다.