STRING_ESCAPE(Transact-SQL)
적용 대상: SQL Server 2016(13.x) 이상 Azure SQL 데이터베이스 Azure SQL Managed Instance
텍스트의 특수 문자를 이스케이프하고 이스케이프 문자가 포함된 텍스트를 반환합니다. STRING_ESCAPE는 SQL Server 2016에서 도입된 결정 함수입니다.
구문
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') );