I SQL Server, T-SQL STRING_ESCAPE()
funktion escapes specialtecken i texter och returnerar texten med escaped tecken.
Du anger texten och escape-typen som argument när du anropar funktionen.
Syntax
Syntaxen ser ut så här:
STRING_ESCAPE( text , type )
Där text är texten som innehåller alla tecken som ska escapes och typ bestämmer vilka utrymningsregler som ska gälla.
För närvarande är det enda värdet som stöds för typen argumentet är 'json'
.
Exempel 1 – Grundläggande användning
Här är ett exempel på hur det fungerar:
SELECT STRING_ESCAPE('\', 'json') AS Result;
Resultat:
+----------+ | Result | |----------| | \\ | +----------+
Här är ett exempel där ett snedstreck undviks:
SELECT STRING_ESCAPE('/', 'json') AS Result;
Resultat:
+----------+ | Result | |----------| | \/ | +----------+
Och här är ett exempel med lite mer text:
SELECT STRING_ESCAPE('Free beer/wine with every lambo!', 'json') AS Result;
Resultat:
+-----------------------------------+ | Result | |-----------------------------------| | Free beer\/wine with every lambo! | +-----------------------------------+
Exempel 2 – Ogiltig typ
I skrivande stund är det enda värdet som stöds för typen parametern är 'json'
. Så här händer om vi tillhandahåller ett värde som inte stöds:
SELECT STRING_ESCAPE('\', 'oops') AS Result;
Resultat:
An invalid value was specified for argument 2.
Escapable Characters
I skrivande stund är STRING_ESCAPE()
funktionen kan bara undkomma JSON-specialtecken som anges i följande tabell:
Specialkaraktär | Kodad sekvens |
---|---|
citattecken (") | \" |
Omvänd solidus (\) | \| |
Solidus (/) | \/ |
Backsteg | \b |
Formatflöde | \f |
Ny rad | \n |
Carriage return | \r |
Horisontell flik | \t |
Kontrollkaraktär | Kodad sekvens |
---|---|
CHAR(0) | \u0000 |
CHAR(1) | \u0001 |
... | ... |
CHAR(31) | \u001f |