[TL;DR] Het eenvoudigste om te doen is om nooit dubbele aanhalingstekens rond objectnamen te gebruiken en Oracle de hoofdlettergevoeligheid op de standaardmanier te laten beheren.
Oracle-databases zijn standaard hoofdlettergevoelig; ze zullen echter ook standaard alles naar hoofdletters converteren, zodat de hoofdlettergevoeligheid van u, de gebruiker, wordt geabstraheerd.
CREATE TABLE tEsT ( column_name NUMBER );
Dan:
SELECT COUNT(*) FROM test;
SELECT COUNT(*) FROM Test;
SELECT COUNT(*) FROM TEST;
SELECT COUNT(*) FROM tEsT;
Zal allemaal dezelfde output geven en:
SELECT * FROM USER_TABLES;
Uitgangen:
TABLE_NAME
----------
TEST
(Let op:de tabelnaam is in hoofdletters).
Als u dubbele aanhalingstekens gebruikt, respecteert Oracle uw gebruik van hoofdletters in de tabelnaam:
CREATE TABLE "tEsT" ( column_name NUMBER );
en:
SELECT * FROM USER_TABLES;
Uitgangen:
TABLE_NAME
----------
TEST
tEsT
(Opmerking:er zijn nu twee tabellen met de naam TEST
en tEsT
en Oracle heeft de hoofdlettergevoeligheid van de tweede gerespecteerd - degene die met aanhalingstekens is gemaakt).
(Let ook op:SELECT * FROM tEsT
selecteert uit de eerste tabel, die is omgezet naar hoofdletters, maar SELECT * FROM "tEsT"
is vereist om uit de tweede te selecteren, ook al zijn de zoekopdrachten identiek, behalve de aanhalingstekens).