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