본문 바로가기
IDE & Tool

[DBeaver] MSSQL csv 파일 추출 / csv 파일로 내보내기 / 한글 깨짐 /숫자 깨짐 해결 / 탭 제거 / 엔터 제거

by DEV_SE 2024. 7. 16.

개요

 DBeaver에서 CSV로 추출시 한글/숫자 깨짐 해결

 

 

 

1. 쿼리 작성

=> 파일로 추출할 SELCT 쿼리를 작성 후 조회한다.

 

2. Results 데이터 부분 > 데이터 추출 클릭

 

3. CSV 클릭

 

4. Format settings 에서 숫자 형식 체크 ☑

 

5. [주의] Output : csv 파일이 생성되는 위치로,  디렉터리 위치와 파일명 변경이 가능하다.

경로를 알아둬야 조금 이따가 엑셀에서도 불러오기 편함!

한글 깨짐 해결 : Encoding - UTF-8 ,  Insert BOM  체크 ☑

Directory만 잡아주고 파일명(File name pattern)은 기본 사용했다.

 

 

6. 진행(P)

여기서 주의할 점은 생성된 CSV 파일을 더블 클릭으로 그대로 열면 숫자가 깨지는 현상이 발생한다. 

그래서 빈 Excel을 열고 다른 방법으로 파일을 "불러와야 한다"

 

7. 엑셀 > 데이터 > 텍스트

DBeaver의 Output에서 지정한 경로로 가서 해당 csv 파일을 가져온다.

 

 

8. 구분 기호로 분리됨(D) 체크 / UTF-8 체크

 

 

9. 구분 기호 : 탭, 쉼표 체크

 [데이터 미리보기] 를 통해 컬럼 구분이 잘 됐는지 확인이 가능.

* 일반적으로는 탭/ 쉼표 클릭시 컬럼 구분이 잘 되지만, 혹시 추출한 데이터 형식이 다른 경우 미리보기를 보면서 구분 기호를 바꿔가며 적용해보면 됨.

 

 

10. 열 데이터 서식 지정

데이터 미리 보기에서 열을 클릭하며 각 열의 서식을 지정 할 수 있다.

여기서 기존에 깨졌던 열은 전부 !!!!!  "텍스트" 로 지정한다.

 

 

11. 마침(F) - 완성본

날짜 데이터, 숫자 데이터 모두 깨지지 않고 나옴을 확인.

 

 

 

요약

* DBeaver CSV로 내보내기 시 체크 사항

  1. UTF-8
  2. Insert BOM 체크
  3. 숫자 형식 체크

* 엑셀에서 가져오기 시 체크 사항

  1. 구분 기호 지정
  2. 열 데이터 서식 : 깨지는 데이터는 전부 "텍스트" 지정

 

 

[번외 꿀팁] - 추출 시 엔터, 탭 제거

MSSQL에서 엑셀이나 CSV 등으로 데이터를 추출할 때 엔터나 탭이 포함된 문자열인 경우 형식이 깨질 수 있다.

tab이나 enter가 구분자 역할을 하기 때문이다.

따라서 엑셀로 추출하기 전에 SELECT 구문에서 문자열에 대해 탭과 엔터를 REPLACE로 제거하여 깨짐현상을 방지할 수 있다.

REPLACE(REPLACE(컬럼명, CHAR(13), ''), CHAR(10), ''); -- 문자열에서 줄바꿈(엔터) 문자를 제거
REPLACE(컬럼명, CHAR(9), '') -- 문자열에서 탭(Tab) 문자를 제거

 

구성 설명

1️⃣ CHAR(13), CHAR(10) 제거
REPLACE(REPLACE(컬럼명, CHAR(13), ''), CHAR(10), '')

  1. CHAR(13)은 캐리지 리턴 (Carriage Return, \r) — 윈도우에서 엔터를 누르면 생기는 첫 번째 문자입니다.
  2. CHAR(10)은 라인 피드 (Line Feed, \n) — 엔터 시 생기는 두 번째 문자입니다.

→ 윈도우의 줄바꿈(엔터)인 \r\n을 제거합니다.
→ 결과적으로 여러 줄로 된 문자열을 한 줄로 만듭니다.

2️⃣ CHAR(9) 제거
REPLACE(컬럼명, CHAR(9), '')
→ 탭(Tab) 문자를 삭제합니다.
→ 텍스트의 불필요한 간격이나 들여쓰기를 제거할 수 있습니다.

 

 

 

 

 

https://zetastring.tistory.com/328

 

MSSQL에서 탭, 엔터 제거하기(\t \n \r 제거)

MSSQL에서 데이터를 뽑아서 엑셀이나 CSV 등에 옮길 때 엔터나 탭으로 인해 파일 형식이 깨지는 경우가 많다.왜냐하면 tab이나 enter가 구분자 역할을 하기 때문이다. 따라서 엑셀에 담기 전에 탭과

zetastring.tistory.com

 

 

반응형