헝D의 일기장

문제
오라클 developer에서 어떠한 select 쿼리를 날렸을때 값이 1이 나오는데 자바 프로그램에서 MyBatis 를 통해 파라미터를 넘기고 똑같은 쿼리를 select 했을때는 값이 0이 나온다.
근데 이러한 현상이 where 조건에 다른 값을 줬을때는 정상적으로 나오는 문제가 있었다.
 
원인
where 조건에 사용된 컬럼이 varchar 타입이 아닌 char 타입이었다.
char 타입인 데이터는 지정한 길이보다 문자의 길이가 적을때 나머지 부분을 공백으로 채운다.
그렇기 때문에 MyBatis 로 실행했을때 해당 값이 공백까지 정확히 일치하지 않았기 때문에 developer 상의 결과와 달랐다.
 
해결
해당 컬럼은 char 8byte 의 데이터 타입을 가지고 있었고, 다른 데이터들도 모두 8byte 의 길이를 가지고 있었다. 값이 정상적으로 나온 경우는 해당 데이터가 8 byte 인 경우였다. 내가 테스트 하려던 데이터도 임의의 값을 집어넣었던 거라 길이를 맞추기 위해 8byte 로 맞추어 진행했다.  

profile

헝D의 일기장

@헝D

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!