[TL;DR] La cosa più semplice da fare è non usare mai le doppie virgolette attorno ai nomi degli oggetti e lasciare che Oracle gestisca la distinzione tra maiuscole e minuscole nel modo predefinito.
Per impostazione predefinita, i database Oracle fanno distinzione tra maiuscole e minuscole; tuttavia, per impostazione predefinita, convertiranno anche tutto in maiuscolo in modo che la distinzione tra maiuscole e minuscole venga sottratta a te, l'utente.
CREATE TABLE tEsT ( column_name NUMBER );
Quindi:
SELECT COUNT(*) FROM test;
SELECT COUNT(*) FROM Test;
SELECT COUNT(*) FROM TEST;
SELECT COUNT(*) FROM tEsT;
Daranno tutti lo stesso output e:
SELECT * FROM USER_TABLES;
Uscite:
TABLE_NAME
----------
TEST
(Nota che il nome della tabella è in maiuscolo).
Se usi le virgolette doppie, Oracle rispetterà il tuo uso di maiuscole e minuscole nel nome della tabella:
CREATE TABLE "tEsT" ( column_name NUMBER );
e:
SELECT * FROM USER_TABLES;
Uscite:
TABLE_NAME
----------
TEST
tEsT
(Nota:ora ci sono due tabelle denominate TEST
e tEsT
e Oracle ha rispettato la distinzione tra maiuscole e minuscole del secondo, quello creato tra virgolette).
(Nota anche:SELECT * FROM tEsT
selezionerà dalla prima tabella, che è stata convertita in maiuscolo, ma SELECT * FROM "tEsT"
è necessario selezionare dalla seconda anche se le query sono identiche a parte le virgolette).