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

Come funziona la funzione STRING_ESCAPE() in SQL Server (T-SQL)

In SQL Server, T-SQL STRING_ESCAPE() la funzione esegue l'escape dei caratteri speciali nei testi e restituisce il testo con i caratteri di escape.

Fornisci il testo e il tipo di escape come argomenti quando chiami la funzione.

Sintassi

La sintassi è questa:

STRING_ESCAPE( text , type )

Dove testo è il testo che contiene tutti i caratteri di cui eseguire l'escape e digitare determina le regole di escape da applicare.

Attualmente, l'unico valore supportato per il tipo l'argomento è 'json' .

Esempio 1 – Utilizzo di base

Ecco un esempio di come funziona:

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

Risultato:

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

Ecco un esempio in cui viene eseguito l'escape di una barra:

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

Risultato:

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

Ed ecco un esempio con un po' più di testo:

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

Risultato:

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

Esempio 2 – Tipo non valido

Al momento della scrittura, l'unico valore supportato per il tipo il parametro è 'json' . Ecco cosa succede se forniamo un valore non supportato:

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

Risultato:

An invalid value was specified for argument 2.

Personaggi escludibili

Al momento della scrittura, il STRING_ESCAPE() La funzione può eseguire solo l'escape dei caratteri speciali JSON elencati nella tabella seguente:

Carattere speciale Sequenza codificata
Citazione (") \"
Solido inverso (\) \|
Solido (/) \/
Backspace \b
Alimentazione modulo \f
Nuova riga \n
Ritorno a bordo \r
Scheda Orizzontale \t
Carattere di controllo Sequenza codificata
CHAR(0) \u0000
CHAR(1) \u0001
... ...
CHAR(31) \u001f