본문 바로가기

DataBase/MSSql

SQL 내부에서 Unicode로 변환하는 프로시저

/*
실행 예제
DECLARE @R_VAL VARCHAR(MAX) 
EXEC J_CON_STR_TO_UNICODE N'안녕하세요.유니코드로 변환하는 거에요.', @R_VAL OUTPUT

SELECT @R_VAL 
*/


CREATE PROC [dbo].[J_CON_STR_TO_UNICODE] (
@INPUT_STR NVARCHAR(MAX), -- 변환될 스트링값
@RTN_STR VARCHAR(MAX) OUTPUT -- 반환될 값
) AS
BEGIN

SET NOCOUNT ON


DECLARE @MAX_SEQ INT
DECLARE @III INT
DECLARE @SINGLE_STR NVARCHAR(1)

DECLARE @TMP_STR VARCHAR(MAX) -- VARCHAR(MAX)



SELECT @MAX_SEQ = LEN(@INPUT_STR)
SET @III = 1

SET @RTN_STR = ''

WHILE @MAX_SEQ >= @III
BEGIN
SET @SINGLE_STR = SUBSTRING(@INPUT_STR, @III, @III+1)

SELECT
@TMP_STR = CAST(N'' AS XML).value(
'xs:hexBinary(sql:column("STR_UNICODE"))'
, 'VARCHAR(MAX)'
) 
FROM (
SELECT CAST(UNICODE(@SINGLE_STR) AS VARBINARY(MAX)) AS STR_UNICODE
) AS ENCODING_DATA

SET @RTN_STR = @RTN_STR + RIGHT(@TMP_STR, 4)

SET @III = @III + 1
END

--SELECT @RTN_STR RTN_STR

END

'DataBase > MSSql' 카테고리의 다른 글

Stuff  (0) 2019.07.11
bulk insert  (0) 2019.07.07
mssql 에서 메일 발송  (0) 2019.06.22
MS-SQL 2008 쿼리 튜닝할 때 사용되는 쿼리문  (0) 2015.10.22
SQL Paging Query - 2005이상  (0) 2011.08.31