Mettere virgolette attorno a un identificatore a cause di Oracle Oracle per trattare l'identificatore come maiuscole e minuscole anziché utilizzare l'impostazione predefinita di insensibilità al maiuscolo/minuscolo. Se crei una tabella (o una colonna) con virgolette attorno al nome, devi sempre fare riferimento all'identificatore con virgolette doppie e specificando correttamente il caso (con l'eccezione di tutti gli identificatori maiuscoli, dove le virgolette sono prive di significato).
Sotto le coperture, Oracle esegue sempre la corrispondenza dell'identificatore con distinzione tra maiuscole e minuscole. Tuttavia, crea sempre identificatori che non vengono citati in maiuscolo prima di eseguire la corrispondenza. Se inserisci virgolette su un identificatore, Oracle salta il cast in lettere maiuscole.
Quindi, se fai qualcosa come
CREATE TABLE my_table(
col1 number,
col2 number
)
è possibile
SELECT * FROM my_table
SELECT * FROM MY_TABLE
SELECT * FROM My_Table
SELECT * FROM "MY_TABLE"
ma qualcosa di simile
SELECT * FROM "my_table"
avrà esito negativo.
D'altra parte, se si fa qualcosa di simile
CREATE TABLE "my_other_table"(
col1 number,
col2 number
)
non si può fare
SELECT * FROM my_other_table
SELECT * FROM MY_OTHER_TABLE
SELECT * FROM My_Other_Table
SELECT * FROM "MY_OTHER_TABLE"
ma questo
SELECT * FROM "my_other_table"
funzionerà
fonte
2009-02-18 22:24:14
Questa risposta lascia fuori il fatto che consente anche agli identificatori di contenere caratteri che altrimenti sarebbero illegali, come un carattere di spazio. Probabilmente è anche consigliabile utilizzare solo lettere maiuscole, cifre e trattini bassi. Fare così renderà la vita di tutti più facile. – jpmc26