sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo hacer que los nombres de las tablas de Oracle no distingan entre mayúsculas y minúsculas?

[TL;DR] Lo más simple que puede hacer es nunca usar comillas dobles alrededor de los nombres de los objetos y simplemente dejar que Oracle administre la distinción entre mayúsculas y minúsculas de la forma predeterminada.

Las bases de datos de Oracle distinguen entre mayúsculas y minúsculas de manera predeterminada; sin embargo, también, de forma predeterminada, convertirán todo a mayúsculas para que la distinción entre mayúsculas y minúsculas se abstraiga de usted, el usuario.

CREATE TABLE tEsT ( column_name NUMBER );

Entonces:

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

Todos darán el mismo resultado y:

SELECT * FROM USER_TABLES;

Salidas:

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

(Tenga en cuenta que el nombre de la tabla está en mayúsculas).

Si usa comillas dobles, Oracle respetará su uso de mayúsculas y minúsculas en el nombre de la tabla:

CREATE TABLE "tEsT" ( column_name NUMBER );

y:

SELECT * FROM USER_TABLES;

Salidas:

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

(Nota:ahora hay dos tablas llamadas TEST y tEsT y Oracle ha respetado la distinción entre mayúsculas y minúsculas del segundo, el creado con comillas).

(También tenga en cuenta:SELECT * FROM tEsT seleccionará de la primera tabla, que se ha convertido a mayúsculas, pero SELECT * FROM "tEsT" es necesario seleccionar del segundo aunque las consultas sean idénticas aparte de las comillas).