In SQL Server is de T-SQL STRING_ESCAPE()
functie ontsnapt aan speciale tekens in teksten en retourneert de tekst met escapetekens.
Je geeft de tekst en het escape-type op als argumenten bij het aanroepen van de functie.
Syntaxis
De syntaxis gaat als volgt:
STRING_ESCAPE( text , type )
Waar tekst is de tekst die alle tekens bevat die moeten worden escaped, en type bepaalt welke ontsnappingsregels van toepassing zijn.
Momenteel is de enige waarde die wordt ondersteund voor het type argument is 'json'
.
Voorbeeld 1 – Basisgebruik
Hier is een voorbeeld van hoe het werkt:
SELECT STRING_ESCAPE('\', 'json') AS Result;
Resultaat:
+----------+ | Result | |----------| | \\ | +----------+
Hier is een voorbeeld waarbij een schuine streep wordt ontsnapt:
SELECT STRING_ESCAPE('/', 'json') AS Result;
Resultaat:
+----------+ | Result | |----------| | \/ | +----------+
En hier is een voorbeeld met wat meer tekst:
SELECT STRING_ESCAPE('Free beer/wine with every lambo!', 'json') AS Result;
Resultaat:
+-----------------------------------+ | Result | |-----------------------------------| | Free beer\/wine with every lambo! | +-----------------------------------+
Voorbeeld 2 – Ongeldig type
Op het moment van schrijven is de enige waarde die wordt ondersteund voor het type parameter is 'json'
. Dit is wat er gebeurt als we een niet-ondersteunde waarde leveren:
SELECT STRING_ESCAPE('\', 'oops') AS Result;
Resultaat:
An invalid value was specified for argument 2.
Ontsnapbare tekens
Op het moment van schrijven is de STRING_ESCAPE()
functie kan alleen ontsnappen aan de speciale JSON-tekens in de volgende tabel:
Speciaal teken | Gecodeerde reeks |
---|---|
Aanhalingsteken (") | \" |
Omgekeerde solidus (\) | \| |
Solidus (/) | \/ |
Backspace | \b |
Formulierfeed | \f |
Nieuwe regel | \n |
Koetsretour | \r |
Horizontaal tabblad | \t |
Besturingsteken | Gecodeerde reeks |
---|---|
CHAR(0) | \u0000 |
CHAR(1) | \u0001 |
… | … |
CHAR(31) | \u001f |