sql >> Databáze >  >> RDS >> Oracle

Co přesně dělají uvozovky kolem názvu tabulky?

Umístění identifikátoru do dvojitých uvozovek v Oracle způsobí, že Oracle bude s identifikátorem zacházet jako s rozlišujícími malá a velká písmena, nikoli s výchozím nastavením nerozlišování velkých a malých písmen. Pokud vytváříte tabulku (nebo sloupec) s dvojitými uvozovkami kolem názvu, musíte vždy odkazovat na identifikátor s dvojitými uvozovkami a správným uvedením velikosti písmen (s výjimkou všech identifikátorů velkých písmen, kde dvojité uvozovky nemají význam ).

Oracle pod krytem vždy provádí porovnávání identifikátorů s rozlišováním velkých a malých písmen. Ale vždy před provedením porovnávání přetypuje identifikátory, které nejsou v uvozovkách velkými písmeny. Pokud kolem identifikátoru dáte dvojité uvozovky, Oracle přeskočí přetypování na velká písmena.

Pokud tedy uděláte něco jako

CREATE TABLE my_table( 
  col1 number,
  col2 number
)

můžete

SELECT * FROM my_table
SELECT * FROM MY_TABLE
SELECT * FROM My_Table
SELECT * FROM "MY_TABLE"

ale něco jako

SELECT * FROM "my_table" 

selže.

Na druhou stranu, pokud uděláte něco jako

CREATE TABLE "my_other_table"( 
  col1 number,
  col2 number
)

nemůžete udělat

SELECT * FROM my_other_table
SELECT * FROM MY_OTHER_TABLE
SELECT * FROM My_Other_Table
SELECT * FROM "MY_OTHER_TABLE"

ale toto

SELECT * FROM "my_other_table" 

bude fungovat



  1. Plánování kapacity pro MySQL a MariaDB – dimenzování velikosti úložiště

  2. 6 problémových dotazů, které masivně zpomalují vaši databázi

  3. MySQL – MariaDB – Psaní úplně první uložené procedury

  4. SQL Server – zahrňte NULL pomocí UNPIVOT