Poner comillas dobles alrededor de un identificador en causas de Oracle Oracle trata el identificador como sensible a mayúsculas y minúsculas en lugar de utilizar el valor predeterminado de insensibilidad a mayúsculas y minúsculas. Si crea una tabla (o una columna) con comillas dobles alrededor del nombre, siempre debe referirse al identificador con comillas dobles y especificando correctamente el caso (con la excepción de todos los identificadores en mayúscula, donde las comillas dobles no tienen sentido)
Debajo de las cubiertas, Oracle siempre está haciendo coincidir identificador de mayúsculas y minúsculas. Pero siempre arroja identificadores que no están doblemente citados a mayúsculas antes de hacer la coincidencia. Si coloca comillas dobles alrededor de un identificador, Oracle se salta la conversión a mayúsculas.
Así que si haces algo como
CREATE TABLE my_table(
col1 number,
col2 number
)
puede
SELECT * FROM my_table
SELECT * FROM MY_TABLE
SELECT * FROM My_Table
SELECT * FROM "MY_TABLE"
sino algo así como
SELECT * FROM "my_table"
se producirá un error.
Por otro lado, si haces algo como
CREATE TABLE "my_other_table"(
col1 number,
col2 number
)
no se puede hacer
SELECT * FROM my_other_table
SELECT * FROM MY_OTHER_TABLE
SELECT * FROM My_Other_Table
SELECT * FROM "MY_OTHER_TABLE"
pero esto
SELECT * FROM "my_other_table"
trabajará
Esta respuesta deja fuera el hecho de que también permite que los identificadores contengan caracteres que de otro modo serían ilegales, como un carácter de espacio. Probablemente también sea una buena práctica usar solo letras mayúsculas, dígitos y guiones bajos. Hacerlo hará que la vida de todos sea más fácil. – jpmc26