Oracle
 sql >> Database >  >> RDS >> Oracle

Come rendere i nomi delle tabelle Oracle senza distinzione tra maiuscole e minuscole?

[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).