Maison  >  Article  >  base de données  >  citations d'oracle évasion

citations d'oracle évasion

PHPz
PHPzoriginal
2023-05-13 16:50:371235parcourir

Oracle est actuellement l'un des systèmes de gestion de bases de données au niveau de l'entreprise les plus populaires et est largement utilisé dans diverses plates-formes d'applications au niveau de l'entreprise. Dans Oracle, l'échappement des guillemets est un problème courant car les guillemets sont les symboles de marquage qui représentent les valeurs de chaîne dans les instructions SQL. Si la valeur de chaîne elle-même contient des guillemets, ils doivent être échappés pour éviter les erreurs de syntaxe. Cet article présentera en détail le problème d’échappement des guillemets dans Oracle.

  1. Échappement de guillemets simples

Dans Oracle, deux types de guillemets sont utilisés pour représenter les valeurs de chaîne : les guillemets simples et les guillemets doubles. Parmi eux, les guillemets simples sont généralement utilisés pour représenter des chaînes de texte, telles que :

SELECT *
FROM Employees
WHERE FirstName = 'John';

Dans le code ci-dessus, "John" représente une chaîne de texte utilisée pour faire correspondre les lignes avec la valeur John dans la colonne FirstName.

Cependant, si la chaîne de texte elle-même contient des guillemets simples, une erreur de syntaxe se produira, telle que :

SELECT *
FROM Employees
WHERE FirstName = 'John's';

Dans ce cas, les guillemets ne sont pas reconnus, provoquant une erreur de syntaxe. Pour résoudre ce problème, vous pouvez utiliser des guillemets simples pour vous échapper, par exemple :

SELECT *
FROM Employees
WHERE FirstName = 'John''s';

Dans le code ci-dessus, deux guillemets simples apparaissent en continu, indiquant un guillemet simple.

  1. Évasion des guillemets doubles

En plus des guillemets simples, Oracle prend également en charge l'utilisation de guillemets doubles pour représenter les identifiants (tels que les noms de tables, les noms de colonnes, etc.). Dans certains cas, notamment lorsque les identifiants contiennent des caractères inhabituels, l'échappement entre guillemets doubles est utile. Par exemple :

SELECT "First Name", "Last Name"
FROM Employees;

Dans le code ci-dessus, "Prénom" et "Nom" sont des identifiants entourés de guillemets doubles. Dans ce cas, les guillemets doubles préservent les espaces et autres caractères spéciaux dans l'identifiant.

Cependant, il est important de noter que l'utilisation de guillemets doubles entraînera une sensibilité à la casse dans Oracle, car Oracle convertit les identifiants en caractères majuscules par défaut. Par conséquent, si un identifiant entre guillemets doubles contient des caractères minuscules, ils doivent être échappés à l’aide de guillemets doubles. Par exemple :

SELECT "First Name", "Last Name"
FROM Employees;

Dans le code ci-dessus, "prénom" et "nom de famille" sont des identifiants entre guillemets doubles, donc Oracle les considère comme étant différents de la casse normale et ne les convertit pas en caractères majuscules.

  1. Mode ANSI_QUOTES

Parfois, vous devez utiliser à la fois des guillemets simples et doubles dans Oracle, par exemple :

SELECT *
FROM Employees
WHERE "First Name" = 'John';

Dans le code ci-dessus, "Prénom" est un identifiant entouré de guillemets doubles, et "John" est une chaîne de texte entourée de guillemets simples.

Cependant, Oracle ne prend pas en charge le mélange de guillemets simples et doubles par défaut. Si vous souhaitez utiliser le mode ANSI_QUOTES dans Oracle pour prendre en charge cette situation, vous devez utiliser la commande suivante :

SET SQL92_RESERVED_WORDS = 'NONE';

Après avoir utilisé la commande ci-dessus, Oracle peut prendre en charge l'utilisation mixte de guillemets simples et doubles.

  1. Résumé

Dans Oracle, l'échappement des guillemets est un problème très courant. Si vous souhaitez utiliser des guillemets simples pour représenter une chaîne de texte, vous devez noter que la chaîne de texte peut contenir des guillemets simples et que vous pouvez utiliser deux guillemets simples consécutifs pour échapper. Si vous souhaitez utiliser des guillemets doubles pour représenter les identifiants, vous devez noter qu'Oracle convertit les identifiants en caractères majuscules par défaut et que vous pouvez utiliser des guillemets doubles pour échapper. Si vous devez utiliser à la fois des guillemets simples et doubles, vous pouvez utiliser le mode ANSI_QUOTES. Ce qui précède sont les points de connaissances de base sur les guillemets qui s'échappent dans Oracle. J'espère que cela sera utile aux lecteurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn