개요
DBeaver에서 CSV로 추출시 한글/숫자 깨짐 해결
상세
1. SELECT 쿼리 작성
=> SELCT한 데이터의 전체를 클릭 하기 위해 'Calculate total row count' 클릭
2. 데이터 부분 클릭후 전체 선택 Ctrl + A 우클릭 > 데이터 추출
3. CSV 클릭
4. Format settings 에서 숫자 형식 체크
5. Output : 출력물이 생기는 위치와 파일명 변경이 가능하다.
한글 깨짐 해결 : Encoding - UTF-8 / ★ Insert BOM 체크
6. 진행(P)
여기서 주의할 점은 생성된 CSV 파일을 더블 클릭으로 그대로 열면 숫자가 깨지는 현상이 발생한다.
그래서 빈 Excel을 열고 다른 방법으로 파일을 "불러와야 한다"
7. 엑셀 > 데이터 > 텍스트
DBeaver의 Output에서 지정한 경로로 가서 해당 csv 파일을 가져온다.
8. 구분 기호로 분리됨(D) 체크 / UTF-8 체크
9. 구분 기호 : 탭, 쉼표 체크
[데이터 미리보기] 를 통해 컬럼 구분이 잘 됐는지 확인이 가능.
* 일반적으로는 탭/ 쉼표 클릭시 컬럼 구분이 잘 되지만, 혹시 추출한 데이터 형식이 다른 경우 미리보기를 보면서 구분 기호를 바꿔가며 적용해보면 됨.
10. 열 데이터 서식 지정
데이터 미리 보기에서 열을 클릭하며 각 열의 서식을 지정 할 수 있다.
여기서 기존에 깨졌던 열은 전부 !!!!! "텍스트" 로 지정한다.
11. 마침(F) - 완성본
[요약]
* DBeaver CSV로 내보내기 시 체크 사항
- UTF-8
- Insert BOM 체크
- 숫자 형식 체크
* 엑셀에서 가져오기 시 체크 사항
- 구분 기호 지정
- 열 데이터 서식 : 깨지는 데이터는 전부 "텍스트" 지정
[번외 꿀팁] - 엔터, 탭 제거
MSSQL에서 엑셀이나 CSV 등으로 데이터를 추출할 때 엔터나 탭으로 인해 형식이 깨지는 경우가 많다.
왜냐하면 tab이나 enter가 구분자 역할을 하기 때문이다.
따라서 엑셀로 추출하기 전에 SELECT 구문 조회 시 탭과 엔터를 REPLACE로 제거하는 과정을 걸쳐준다.
REPLACE(REPLACE(컬럼명, CHAR(13), ''), CHAR(10), ''); -- 엔터
REPLACE(컬럼명, CHAR(9), '') -- 탭
\t: char(9)
\n: char(10)
\r: char(13)
\t는 탭이기 때문에 char(9)를 찾아서 REPLACE를 해주면 된다.
\n, \r은 엔터이기 때문에 char(10)과 char(13)을 찾아서 REPLACE를 해주면 된다.
https://zetastring.tistory.com/328
MSSQL에서 탭, 엔터 제거하기(\t \n \r 제거)
MSSQL에서 데이터를 뽑아서 엑셀이나 CSV 등에 옮길 때 엔터나 탭으로 인해 파일 형식이 깨지는 경우가 많다.왜냐하면 tab이나 enter가 구분자 역할을 하기 때문이다. 따라서 엑셀에 담기 전에 탭과
zetastring.tistory.com