Som standard är Oracle-identifierare (tabellnamn, kolumnnamn, etc.) okänsliga skiftlägen . Du kan göra dem skiftlägeskänsliga genom att använda citattecken runt dem (t.ex.:SELECT * FROM "My_Table" WHERE "my_field" = 1
). SQL-nyckelord (SELECT
, WHERE
, JOIN
, etc.) är alltid skiftlägesokänsliga.
Å andra sidan är strängjämförelser skiftlägeskänsliga (t.ex.:WHERE field='STRING'
kommer bara att matcha kolumner där det är 'STRING'
) som standard. Du kan göra dem skiftlägesokänsliga genom att ställa in NLS_COMP
och NLS_SORT
till lämpliga värden (t.ex.:LINGUISTIC
och BINARY_CI
, respektive).
Obs:När du frågar efter datalexikonvyer (t.ex.:
dba_tables
) namnen kommer att vara versaler om du skapade dem utan citattecken, och reglerna för strängjämförelse som förklaras i andra stycket kommer att gälla här.
Vissa databaser (Oracle, IBM DB2, PostgreSQL, etc.) utför skiftlägeskänsliga strängjämförelser som standard, andra är skiftlägesokänsliga (SQL Server, MySQL, SQLite). Detta är inte standard på något sätt, så var bara medveten om dina db-inställningar.