STRING_ESCAPE (Transact-SQL)
Si applica a: SQL Server 2016 (13.x) e versioni successive Database SQL di Azure Istanza gestita di SQL di Azure
Aggiunge un carattere di escape prima di caratteri speciali nei testi e restituisce testo con caratteri preceduti da un carattere di escape. STRING_ESCAPE è una funzione deterministica introdotta in SQL Server 2016.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
STRING_ESCAPE( text , type )
Argomenti
Testo
Espressione nvarchar che rappresenta l'oggetto di cui eseguire l'escape.
type
Regole di escape che verranno applicate. Il valore supportato è attualmente 'json'
.
Tipi restituiti
Testo nvarchar (max) con caratteri speciali e di controllo preceduti da un carattere di escape. Attualmente STRING_ESCAPE fa precedere un carattere di escape solo ai caratteri speciali JSON illustrati nelle tabelle seguenti.
Carattere speciale | Sequenza codificata |
---|---|
Virgoletta (") | \" |
Barra rovesciata (\) | \\ |
Barra (/) | \/ |
Backspace | \b |
Avanzamento carta | \f |
Nuova riga | \n |
Ritorno a capo | \r |
Tabulazione orizzontale | \t |
Carattere di controllo | Sequenza codificata |
---|---|
CHAR(0) | \u0000 |
CHAR(1) | \u0001 |
... | ... |
CHAR(31) | \u001f |
Osservazioni:
Esempi
R. Aggiungere un carattere di escape al testo in base alle regole di formattazione JSON
La query seguente fa precedere da un carattere di escape i caratteri speciali mediante regole JSON e restituisce testo preceduto da un carattere di escape.
SELECT STRING_ESCAPE('\ /
\\ " ', 'json') AS escapedText;
Il set di risultati è il seguente.
escapedText
-------------------------------------------------------------
\\\t\/\n\\\\\t\"\t
B. Formattare un oggetto JSON
La query seguente crea testo JSON da variabili di stringa e numero e aggiunge un carattere di escape prima di qualsiasi carattere speciale JSON nelle variabili.
SET @json = FORMATMESSAGE('{ "id": %d,"name": "%s", "surname": "%s" }',
17, STRING_ESCAPE(@name,'json'), STRING_ESCAPE(@surname,'json') );