Umieszczenie podwójnego cudzysłowu wokół identyfikatora w Oracle powoduje, że Oracle traktuje identyfikator jako rozróżniający wielkość liter, zamiast używać domyślnej niewrażliwości na wielkość liter. Jeśli tworzysz tabelę (lub kolumnę) z podwójnym cudzysłowem wokół nazwy, zawsze musisz odwoływać się do identyfikatora w podwójnych cudzysłowach i poprawnie określając wielkość liter (z wyjątkiem wszystkich identyfikatorów pisanych wielkimi literami, gdzie podwójne cudzysłowy nie mają znaczenia ).
Pod przykrywkami Oracle zawsze dopasowuje identyfikatory z uwzględnieniem wielkości liter. Ale zawsze rzuca identyfikatory, które nie są w podwójnym cudzysłowie, na duże litery przed wykonaniem dopasowania. Jeśli umieścisz podwójny cudzysłów wokół identyfikatora, Oracle pominie rzutowanie na wielkie litery.
Więc jeśli zrobisz coś takiego
CREATE TABLE my_table(
col1 number,
col2 number
)
możesz
SELECT * FROM my_table
SELECT * FROM MY_TABLE
SELECT * FROM My_Table
SELECT * FROM "MY_TABLE"
ale coś takiego
SELECT * FROM "my_table"
nie powiedzie się.
Z drugiej strony, jeśli zrobisz coś takiego
CREATE TABLE "my_other_table"(
col1 number,
col2 number
)
nie możesz zrobić
SELECT * FROM my_other_table
SELECT * FROM MY_OTHER_TABLE
SELECT * FROM My_Other_Table
SELECT * FROM "MY_OTHER_TABLE"
ale to
SELECT * FROM "my_other_table"
zadziała