sql >> Databasteknik >  >> RDS >> Oracle

Anledning till varför Oracle är skiftlägeskänsligt?

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.



  1. i SQLite

  2. Använder Workbench för att ansluta till Remote MySQL Server via SSH Tunnel

  3. Mappning av PostgreSQL JSON-kolumn till en Hibernate-entitetsegenskap

  4. Hur man distribuerar Teamcity med PostgreSQL för hög tillgänglighet