Sdílet prostřednictvím


STRING_ESCAPE (Transact-SQL)

Platí na: SQL Server 2016 (13.x) a novější verze Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Umisí speciální znaky v textech a vrátí text s řídicími znaky. STRING_ESCAPE je deterministická funkce, která byla poprvé představena v SQL Serveru 2016.

Transact-SQL konvence syntaxe

Syntaxe

STRING_ESCAPE( text , type )  

Arguments

text

Výraznvarchar představující objekt, který by měl být řídicí.

type

Pravidla pro zapouzdření, která se použijí. Aktuálně je 'json'podporovaná hodnota .

Návratové typy

nvarchar(max) text se speciálními a řídicími znaky.

V současné době STRING_ESCAPE lze řídicí znaky JSON uvedené pouze v následujících tabulkách.

Speciální znak Zakódovaná sekvence
Quotation mark (") \"
Reverse solidus (\\) \\
Solidus (/) \/
Backspace \b
Form feed \f
New line \n
Carriage return \r
Horizontal tab \t
Řídicí znak Zakódovaná sekvence
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

Poznámky

Examples

A. Řídicí text podle pravidel formátování JSON

Následující dotaz použije speciální znaky pomocí pravidel JSON a vrátí řídicí text.

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

Tady je soubor výsledků.

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

B. Formátování objektu JSON

Následující dotaz vytvoří text JSON z číselných a řetězcových proměnných a uchytá všechny speciální znaky JSON v proměnných.

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