Per impostazione predefinita, gli identificatori Oracle (nomi di tabelle, nomi di colonne, ecc.) non fanno distinzione tra maiuscole e minuscole . Puoi renderli sensibili alle maiuscole usando le virgolette intorno a loro (ad esempio:SELECT * FROM "My_Table" WHERE "my_field" = 1
). Parole chiave SQL (SELECT
, WHERE
, JOIN
, ecc.) non fanno sempre distinzione tra maiuscole e minuscole.
D'altra parte, i confronti tra stringhe fanno distinzione tra maiuscole e minuscole (es:WHERE field='STRING'
corrisponderà solo alle colonne in cui è 'STRING'
) per impostazione predefinita. Puoi renderli senza distinzione tra maiuscole e minuscole impostando NLS_COMP
e NLS_SORT
ai valori appropriati (es:LINGUISTIC
e BINARY_CI
, rispettivamente).
Nota:quando si interrogano le viste del dizionario dei dati (ad es.:dba_tables
) i nomi saranno in maiuscolo se li hai creati senza virgolette e qui si applicheranno le regole di confronto delle stringhe come spiegato nel secondo paragrafo.
Alcuni database (Oracle, IBM DB2, PostgreSQL, ecc.) eseguiranno confronti di stringhe con distinzione tra maiuscole e minuscole per impostazione predefinita, altri senza distinzione tra maiuscole e minuscole (SQL Server, MySQL, SQLite). Questo non è affatto standard, quindi tieni presente quali sono le tue impostazioni db.