Poner comillas dobles alrededor de un identificador en Oracle hace que Oracle trate el identificador como sensible a mayúsculas y minúsculas en lugar de usar 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 hacer referencia al identificador con comillas dobles y especificando correctamente el caso (con la excepción de todos los identificadores en mayúsculas, donde las comillas dobles no tienen sentido). ).
Bajo las sábanas, Oracle siempre está haciendo coincidencias de identificadores que distinguen entre mayúsculas y minúsculas. Pero siempre convierte los identificadores que no están entre comillas dobles en mayúsculas antes de hacer la coincidencia. Si coloca comillas dobles alrededor de un identificador, Oracle omite la conversión a mayúsculas.
Así que si haces algo como
CREATE TABLE my_table(
col1 number,
col2 number
)
tu puedes
SELECT * FROM my_table
SELECT * FROM MY_TABLE
SELECT * FROM My_Table
SELECT * FROM "MY_TABLE"
pero algo como
SELECT * FROM "my_table"
fallará.
Por otro lado, si haces algo como
CREATE TABLE "my_other_table"(
col1 number,
col2 number
)
no puedes 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"
funcionará