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

Comment rendre les noms de table oracle insensibles à la casse ?

[TL;DR] La chose la plus simple à faire est de ne jamais utiliser de guillemets autour des noms d'objets et de laisser Oracle gérer la sensibilité à la casse de sa manière par défaut.

Les bases de données Oracle sont, par défaut, sensibles à la casse ; cependant, ils convertiront également, par défaut, tout en majuscules afin que la sensibilité à la casse soit abstraite de vous, l'utilisateur.

CREATE TABLE tEsT ( column_name NUMBER );

Ensuite :

SELECT COUNT(*) FROM test;
SELECT COUNT(*) FROM Test;
SELECT COUNT(*) FROM TEST;
SELECT COUNT(*) FROM tEsT;

Donneront tous le même résultat et :

SELECT * FROM USER_TABLES;

Sorties :

TABLE_NAME
----------
TEST 

(Notez que le nom de la table est en majuscules).

Si vous utilisez des guillemets doubles, Oracle respectera votre utilisation de la casse dans le nom de la table :

CREATE TABLE "tEsT" ( column_name NUMBER );

et :

SELECT * FROM USER_TABLES;

Sorties :

TABLE_NAME
----------
TEST 
tEsT

(Remarque :il y a maintenant deux tables nommées TEST et tEsT et oracle a respecté la sensibilité à la casse du second - celui créé avec des guillemets).

(Remarque également :SELECT * FROM tEsT sélectionnera dans le premier tableau, qui a été converti en majuscules, mais SELECT * FROM "tEsT" est obligatoire de sélectionner dans la seconde même si les requêtes sont identiques à part les guillemets).