sql >> Database >  >> RDS >> Oracle

Wat doen aanhalingstekens rond de tabelnaam precies?

Door dubbele aanhalingstekens rond een identifier in Oracle te plaatsen, behandelt Oracle de identifier als hoofdlettergevoelig in plaats van de standaard hoofdletterongevoeligheid te gebruiken. Als u een tabel (of een kolom) maakt met dubbele aanhalingstekens rond de naam, moet u altijd verwijzen naar de identifier met dubbele aanhalingstekens en door de hoofdletters correct te specificeren (met uitzondering van alle hoofdletters, waar dubbele aanhalingstekens zinloos zijn ).

Onder de dekens is Oracle altijd bezig met het matchen van hoofdlettergevoelige identificatiecodes. Maar het werpt altijd identifiers die niet dubbel worden geciteerd in hoofdletters voordat de matching wordt uitgevoerd. Als u dubbele aanhalingstekens rond een identifier plaatst, slaat Oracle het casten over naar hoofdletters.

Dus als je iets doet als

CREATE TABLE my_table( 
  col1 number,
  col2 number
)

je kunt

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

maar zoiets als

SELECT * FROM "my_table" 

zal mislukken.

Aan de andere kant, als je iets doet als

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

je kunt niet doen

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

maar dit

SELECT * FROM "my_other_table" 

zal werken



  1. Postgres stopte gewoon willekeurig met werken (Rails, PGSQL.5432)

  2. Oracle-instelling per gebruiker standaardschema (geen sessie wijzigen)

  3. MySQL versus MongoDB

  4. Hoe automatisch migraties genereren met Sequelize CLI vanuit Sequelize-modellen?