Att sätta dubbla citattecken runt en identifierare i Oracle gör att Oracle behandlar identifieraren som skiftlägeskänslig snarare än att använda standardinställningen för skiftlägesokänslighet. Om du skapar en tabell (eller en kolumn) med dubbla citattecken runt namnet måste du alltid hänvisa till identifieraren med dubbla citattecken och genom att korrekt ange fallet (med undantag för alla versaler, där dubbla citattecken är meningslösa ).
Under täcket gör Oracle alltid skiftlägeskänslig identifieringsmatchning. Men den castar alltid identifierare som inte är dubbelciterade till versaler innan matchningen görs. Om du sätter dubbla citattecken runt en identifierare hoppar Oracle över castingen till versaler.
Så om du gör något liknande
CREATE TABLE my_table(
col1 number,
col2 number
)
du kan
SELECT * FROM my_table
SELECT * FROM MY_TABLE
SELECT * FROM My_Table
SELECT * FROM "MY_TABLE"
men något liknande
SELECT * FROM "my_table"
kommer att misslyckas.
Å andra sidan, om du gör något liknande
CREATE TABLE "my_other_table"(
col1 number,
col2 number
)
du kan inte göra
SELECT * FROM my_other_table
SELECT * FROM MY_OTHER_TABLE
SELECT * FROM My_Other_Table
SELECT * FROM "MY_OTHER_TABLE"
men det här
SELECT * FROM "my_other_table"
kommer att fungera