Dans Oracle, les requêtes comme SELECT * FROM site WHERE site_id = 3
fonctionnent correctement. Cependant, si vous ajoutez des guillemets doubles autour du nom de la table, tels que SELECT * FROM "site" WHERE site_id = 3
, cela entraînera une erreur « la table ou la vue n'existe pas ». Cet article explore les raisons de cette différence.
Guillemets doubles et sensibilité à la casse
Dans Oracle, l'ajout de guillemets doubles à un identifiant amène Oracle à traiter l'identifiant comme étant sensible à la casse, plutôt que d'utiliser la manière insensible à la casse par défaut. Si vous créez une table (ou une colonne) à l'aide de guillemets doubles, vous devez toujours mettre l'identifiant entre guillemets doubles, en respectant la casse (sauf pour tous les identifiants majuscules, auquel cas les guillemets doubles n'ont aucun effet).
Traitement interne des identifiants
En interne, Oracle fait toujours correspondre les identifiants en respectant la casse. Cependant, il convertit les identifiants non placés entre guillemets en majuscules avant la correspondance. Si vous utilisez des guillemets doubles autour de l'identifiant, Oracle ignorera la conversion en majuscules.
Résumé
N'oubliez donc jamais le respect de la casse lorsque vous utilisez des guillemets doubles autour des noms de tables. Les identifiants qui utilisent des guillemets doubles doivent être mis entre guillemets doubles et utiliser la casse correcte. Cela garantit que les requêtes de base de données s'exécutent comme prévu, évitant ainsi les erreurs telles que « la table ou la vue n'existe pas ».
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!