sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan fungerer STRING_ESCAPE()-funktionen i SQL Server (T-SQL)

I SQL Server, T-SQL STRING_ESCAPE() funktion escapes specialtegn i tekster og returnerer teksten med escapede tegn.

Du angiver teksten og escape-typen som argumenter, når du kalder funktionen.

Syntaks

Syntaksen ser sådan ud:

STRING_ESCAPE( text , type )

Hvor tekst er den tekst, der indeholder tegn, der skal escapes, og type bestemmer, hvilke escape-regler der skal gælde.

I øjeblikket er den eneste værdi, der understøttes for typen argumentet er 'json' .

Eksempel 1 – Grundlæggende brug

Her er et eksempel på, hvordan det virker:

SELECT STRING_ESCAPE('\', 'json') AS Result;

Resultat:

+----------+
| Result   |
|----------|
| \\       |
+----------+

Her er et eksempel, hvor en fremadgående skråstreg undslippes:

SELECT STRING_ESCAPE('/', 'json') AS Result;

Resultat:

+----------+
| Result   |
|----------|
| \/       |
+----------+

Og her er et eksempel med lidt mere tekst:

SELECT STRING_ESCAPE('Free beer/wine with every lambo!', 'json') AS Result;

Resultat:

+-----------------------------------+
| Result                            |
|-----------------------------------|
| Free beer\/wine with every lambo! |
+-----------------------------------+

Eksempel 2 – Ugyldig type

I skrivende stund er den eneste værdi, der understøttes for typen parameteren er 'json' . Her er, hvad der sker, hvis vi leverer en ikke-understøttet værdi:

SELECT STRING_ESCAPE('\', 'oops') AS Result;

Resultat:

An invalid value was specified for argument 2.

Undgåelige tegn

I skrivende stund er STRING_ESCAPE() funktion kan kun undslippe JSON-specialtegnene, der er angivet i følgende tabel:

Specialkarakter Kodet sekvens
Anførselstegn (") \"
Omvendt solidus (\) \|
Solidus (/) \/
Tilbage \b
Formularfeed \f
Ny linje \n
Vogneretur \r
Horisontal fane \t
Kontroltegn Kodet sekvens
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f

  1. ScyllaDB-trends – Sådan implementerer brugere The Real-Time Big Data-database

  2. Hvordan CRC32 virker i MariaDB

  3. Fremskynder rækkeoptællingen i MySQL

  4. Sådan får du alder i år, måneder og dage ved at bruge Oracle