728x90
반응형
텍스트 파일에 기록된 데이터를 읽어서 MS-SQL에 추가하는 작업을 하고 있다. 프로그래밍 언어는 Java, DB 프레임워크는 iBatis(2.3.4)를 사용한다. 간단한 변환이라 별도의 개발 프레임워크는 사용하지 않는다.


원본 파일의 일부 내용은 다음과 같다. 색으로 표시한 부분을 유심히 봐두자.



파일의 내용을 그대로 읽어서 DB에 넣고, select해본 결과이다. 역시나 색으로 표시한 부분을 유심히 보자..  얼핏 보기에도 정상적이지는 않다. 조금 더 유심히 살펴보면 소수점 끝자리기 .0, .5인 경우를 제외하고는 끝자리가 지저분 하게 insert되어 있는 것을 확인할 수 있다.




그렇다면, 이건 어디에서 발생한 문제인가? 일단 파일에서 읽어와 Float으로 변환한 상태를 찍어보면....
지저분한 소수점 없이 깔끔하게 로드되었다.



그렇다면 왜???


일단은 바쁜관계로 질의문을 수정하여 작업하기로 한다.
색으로 표시한 부분을 보면 원본 파일의 내용과 동일하다.



대부분의 값이 소수점 한 자리인데....
질의문은 다음과 같이 작성했다.
1
2
3
4
<insert id="insertXXX" parameterClass="java.util.Map">
    insert into TB_XXX(XXX, YYY, ..... )
    values(ROUND(#XXX#, 4), ROUND(#YYY#, 4), ..... )   
</insert>

 

728x90
반응형
블로그 이미지

nineDeveloper

안녕하세요 현직 개발자 입니다 ~ 빠르게 변화하는 세상에 뒤쳐지지 않도록 우리모두 열심히 공부합시다 ~! 개발공부는 넘나 재미있는 것~!

,