STRING_ESCAPE(Transact-SQL)

적용 대상: SQL Server 2016(13.x) 이상 Azure SQL DatabaseAzure SQL Managed Instance

텍스트의 특수 문자를 이스케이프하고 이스케이프 문자가 포함된 텍스트를 반환합니다. STRING_ESCAPE는 SQL Server 2016에서 도입된 결정 함수입니다.

Transact-SQL 구문 표기 규칙

Syntax

STRING_ESCAPE( text , type )  

인수

text
이스케이프해야 하는 개체를 나타내는 nvarchar 입니다.

type
적용될 규칙을 이스케이프합니다. 현재 지원되는 값은 'json'입니다.

반환 형식

이스케이프된 특수 및 제어 문자가 포함된 nvarchar(max) 텍스트입니다. 현재 STRING_ESCAPE는 다음 표에 나와 있는 JSON 특수 문자만 이스케이프할 수 있습니다.

특수 문자 인코딩된 시퀀스
따옴표(") \"
백슬래시(\) \\
슬래시(/) \/
백스페이스 \b
폼 피드 \f
줄 바꿈 \n
캐리지 리턴 \r
가로 탭 \t
제어 문자 인코딩된 시퀀스
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

설명

예제

A. JSON 서식 지정 규칙에 따라 텍스트를 이스케이프합니다

다음 쿼리는 JSON 규칙을 사용하여 특수 문자를 이스케이프하며 이스케이프된 텍스트를 반환합니다.

SELECT STRING_ESCAPE('\   /  
\\    "     ', 'json') AS escapedText;  

결과 집합은 다음과 같습니다.

escapedText  
-------------------------------------------------------------  
\\\t\/\n\\\\\t\"\t

B. JSON 개체 서식 지정

다음 쿼리는 숫자 및 문자열 변수에서 JSON 텍스트를 만들며 변수의 모든 특수 JSON 문자를 이스케이프합니다.

SET @json = FORMATMESSAGE('{ "id": %d,"name": "%s", "surname": "%s" }',
    17, STRING_ESCAPE(@name,'json'), STRING_ESCAPE(@surname,'json') );  

참고 항목