본문 바로가기
Engineering/DB

(MSSQL) 데이터 타입 변환하기 (binary style, CONVERT)

by 알탱2 2022. 9. 22.
반응형

MSSQL에서 ascii hex 값으로 들어가있는 특정 string 값이 있었는데, 그 값을 ascii 문자로 출력을 하고 싶은 니즈가 있었다. 처음엔 PROCEDURE를 통해 2byte씩 잘라서 변환을 해야하나 싶었는데, CONCAT의 Binary Style을 지정하는 것으로 간단히 해결이 되었다.

하지만... DBeaver에서는 아래와 같이 잘 실행이 되었으나 SQL Client에서는 hex string 그대로 출력되는 문제가 아직 남았다... 일단 CONVERT 함수까지 진행한 부분까지 기록을...

 


ascii hex 값 예시 > 0x4B696D004A696E0041
DB 특정 컬럼에 들어가 있던 형태는 > 4B696D004A696E0041
실제 ascii 문자로 변환한 값은 > "Kim Jin A"

미션 : 4B696D004A696E0041 를 Kim Jin A 로 출력하기

** ascii 코드표는 링크 참고 : https://stepbystep1.tistory.com/10

 


* 쿼리 샘플 예제 : 

SELECT CONVERT(binary,CONCAT('0x',HSTRING),1) AS HSTRING_EDIT FROM (SELECT '4B696D004A696E0041' AS HSTRING) T;

 

* 실행 결과 : 

 

 


여기서의 핵심은 CONVERT 함수에서 3번째 인자인 "style" 이었다.

CONVERT(binary,CONCAT('0x',HSTRING),1)

 

처음에 아래와 같이 CONVERT 함수에 2번째 인자까지만 입력하고 실행하였는데, 계속 HEX STRING이 그대로 출력되었다. 검색 결과 style을 3번째 인자로 지정해줄 수 있었고, 0이 default 값이라 1을 입력하였더니 ASCII 문자로 변환되어 출력이 되었다.

style에 대해서는 MS 문서(link 에서 "Binary Styles" 부분 참고)를 참고하긴 하였으나... 말이 어려워서... 이번 포스팅은 여기까지... ^^;;;

 

 

* style을 지정하지 않고 실행한 결과 ( = 0(default) 으로 설정되어 실행됨 ) : 

 

반응형

댓글