Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Fonctionnement de la fonction STRING_ESCAPE() dans SQL Server (T-SQL)

Dans SQL Server, le STRING_ESCAPE() de T-SQL la fonction échappe les caractères spéciaux dans les textes et renvoie le texte avec les caractères échappés.

Vous fournissez le texte et le type d'échappement comme arguments lors de l'appel de la fonction.

Syntaxe

La syntaxe ressemble à ceci :

STRING_ESCAPE( text , type )

texte est le texte qui contient tous les caractères à échapper, et type détermine les règles d'échappement à appliquer.

Actuellement, la seule valeur prise en charge pour le type l'argument est 'json' .

Exemple 1 - Utilisation de base

Voici un exemple de son fonctionnement :

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

Résultat :

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

Voici un exemple où une barre oblique est échappée :

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

Résultat :

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

Et voici un exemple avec un peu plus de texte :

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

Résultat :

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

Exemple 2 – Type non valide

Au moment de la rédaction, la seule valeur prise en charge pour le type le paramètre est 'json' . Voici ce qui se passe si nous fournissons une valeur non prise en charge :

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

Résultat :

An invalid value was specified for argument 2.

Caractères d'échappement

Au moment de la rédaction, le STRING_ESCAPE() La fonction ne peut échapper que les caractères spéciaux JSON répertoriés dans le tableau suivant :

Caractère spécial Séquence encodée
Guillemet ("") \"
Solidus inversé (\) \|
Solidus (/) \/
Retour arrière \b
Saut de formulaire \f
Nouvelle ligne \n
Retour chariot \r
Onglet horizontal \t
Caractère de contrôle Séquence encodée
CHAR(0) \u0000
CAR(1) \u0001
CAR(31) \u001f