sql >> Databasteknik >  >> RDS >> Oracle

Vad exakt gör citattecken runt tabellnamnet?

Att sätta dubbla citattecken runt en identifierare i Oracle får Oracle att behandla 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



  1. Användarkontohantering, roller, behörigheter, autentisering PHP och MySQL -- Del 5

  2. Kopiera/duplicera databas utan att använda mysqldump

  3. Hur man hämtar poster från de senaste 24 timmarna i MySQL

  4. Hur UPDATEXML() fungerar i MariaDB