Megosztás a következőn keresztül:


STRING_ESCAPE (Transact-SQL)

Vonatkozik a következőkre: SQL Server 2016 (13.x) és későbbi verziók Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Feloldja a speciális karaktereket a szövegekben, és szökött karaktereket tartalmazó szöveget ad vissza. STRING_ESCAPE az SQL Server 2016-ban először bevezetett determinisztikus függvény.

Transact-SQL szintaxis konvenciók

Szemantika

STRING_ESCAPE( text , type )  

Arguments

text

A szökni kívánt objektumot jelképező nvarchar-kifejezés.

type

Az alkalmazott szabályok elől való menekülés. Jelenleg a támogatott érték az 'json'.

Visszatérési típusok

nvarchar(max) szöveg, amely speciális és vezérlőkaraktereket tartalmaz.

Jelenleg STRING_ESCAPE csak az alábbi táblázatokban látható JSON-speciális karaktereket lehet feloldni.

Speciális karakter Kódolt sorozat
Quotation mark (") \"
Reverse solidus (\\) \\
Solidus (/) \/
Backspace \b
Form feed \f
New line \n
Carriage return \r
Horizontal tab \t
Vezérlő karakter Kódolt sorozat
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

Megjegyzések

Példák

A. Szöveg feloldása a JSON-formázási szabályok szerint

Az alábbi lekérdezés JSON-szabályokkal feloldja a speciális karaktereket, és visszaadja a megmenekült szöveget.

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

Itt van az eredmények összessége.

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

B. JSON-objektum formázása

Az alábbi lekérdezés JSON-szöveget hoz létre szám- és sztringváltozókból, és feloldja a változókban lévő speciális JSON-karaktereket.

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