사적인 블로그
[ISSUE] CSV 데이터 DB 임포트시 임의 숫자 변환(feat.Excel) 본문
이슈
: DB에 대량 데이터를 임포트하려는데, CSV 데이터를 엑셀로 열어 저장한 후 다시 켰을 때 16자리 넘어가는 숫자 데이터의 마지막 부분이 0으로 치환되어있음.
ex) 3268344001572864 -> 3268344001572860
혼란 : 메모장으로는 정상적
원인
: 엑셀에서는 16자리 넘어가는 숫자를 자동 변환처리함.
https://learn.microsoft.com/ko-kr/office/troubleshoot/excel/last-digits-changed-to-zeros
Excel은 부동 소수점 숫자를 저장하고 계산하는 방법에 대해 IEEE 754 사양을 따르고 있습니다. 따라서 Excel은 숫자에 15개의 유효 숫자만 저장하고 15번째 자리 이후의 숫자를 0으로 변경합니다.
- 반면 메모장은 이런 기능이 없어 원본 데이터가 문자 그대로 보입니다.
해결방법
: 숫자 앞에 ' 작은 따옴표를 입력하고 숫자를 입력하면 고스란히 잘 보존이 된다.
N백만건의 대량 데이터 A, B를 대조 중 생긴 문제였는데, 하나하나 개별적으로 확인 안했으면 엑셀덕에 암살당할뻔,,,
역시 누구도 믿지 말고 아무도 믿지 말고 원앤어투쓰리포파이브 더블체크가 답이다.
오늘도 빙글빙글 돌아가는 주개(주니어개발자)의하루
'Troble Shooting' 카테고리의 다른 글
[Grails] respond vs redirect | 객체 자동 update 이슈 (1) | 2025.01.09 |
---|---|
[ISSUE] MySQL dump/load시 sql_mode 이슈 (0) | 2025.01.07 |
[ISSUE] Grails dbCreate 속성 - create, create-drop, update, validate, none (1) | 2024.12.31 |
[ISSUE] CI/CD war 파일크기 불일치 이슈(Jenkins) (1) | 2024.12.11 |
[ISSUE] File upload (octet-stream) (1) | 2024.12.03 |