STRING_ESCAPE (Transact-SQL)
S’applique à : SQL Server 2016 (13.x) et versions ultérieures Azure SQL Database Azure SQL Managed Instance
Échappe les caractères spéciaux dans les textes et retourne le texte avec des caractères d’échappement. STRING_ESCAPE est une fonction déterministe, introduite dans SQL Server 2016.
Conventions de la syntaxe Transact-SQL
Syntaxe
STRING_ESCAPE( text , type )
Arguments
texte
Expression nvarchar représentant l’objet qui doit être échappé.
type
Règles d’échappement qui seront appliquées. La valeur prise en charge actuellement est 'json'
.
Types de retour
Texte nvarchar(max) avec caractères de contrôle et spéciaux d’échappement. Actuellement, STRING_ESCAPE peut uniquement échapper les caractères spéciaux JSON répertoriés dans les tableaux suivants.
Caractère spécial | Séquence codée |
---|---|
guillemets (") | \" |
Barre oblique inverse (\) | \\ |
Barre oblique (/) | \/ |
Retour arrière | \b |
Saut de page | \f |
Nouvelle ligne | \n |
Retour chariot | \r |
Tabulation horizontale | \t |
Caractère de contrôle | Séquence codée |
---|---|
CHAR(0) | \u0000 |
CHAR(1) | \u0001 |
... | ... |
CHAR(31) | \u001f |
Notes
Exemples
R. Échapper du texte selon les règles de mise en forme JSON
La requête suivante échappe les caractères spéciaux à l’aide des règles JSON et retourne le texte avec séquence d’échappement.
SELECT STRING_ESCAPE('\ /
\\ " ', 'json') AS escapedText;
Voici le jeu de résultats obtenu.
escapedText
-------------------------------------------------------------
\\\t\/\n\\\\\t\"\t
B. Mettre en forme un objet JSON
La requête suivante crée un texte JSON à partir de variables numériques et de chaîne, et échappe les caractères JSON spéciaux dans les variables.
SET @json = FORMATMESSAGE('{ "id": %d,"name": "%s", "surname": "%s" }',
17, STRING_ESCAPE(@name,'json'), STRING_ESCAPE(@surname,'json') );