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) 으로 설정되어 실행됨 ) :
'Engineering > DB' 카테고리의 다른 글
[sqlcipher4] sqlcipher4로 암호화된 sqlite 파일에 CLI로 데이터 업데이트 방법 (0) | 2023.08.07 |
---|---|
[sqlitebrowser] Ubuntu Desktop에서 sqlitebrowser 설치하여 sqlite3 db 열기 (0) | 2022.11.12 |
postgresql : psql CLI 데이터베이스/테이블 생성/조회 (0) | 2022.06.19 |
MySQL에서 테이블 데이터를 파일(CSV)로 Export하기, 파일에서 Import하여 테이블에 저장하기 (0) | 2021.12.26 |
Postgresql : jsonb 컬럼에서 json array select 하기 (0) | 2021.11.15 |
댓글