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 bevezetett determinisztikus függvény.

Transact-SQL szintaxis konvenciók

Szemantika

STRING_ESCAPE( text , type )  

Arguments

text
Egy nvarcharkifejezés , amely azt az objektumot jelöli, amelyet meg kell szökni.

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 tudja feloldni.

Speciális karakter Kódolt sorozat
Idézőjel (") \"
Fordított solidus (\) \\
Solidus (/) \/
Visszalépés \b
Lapváltás \f
Új sor \n
Kocsivisszatérítés \r
Vízszintes lap \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') );  

Lásd még: