sql >> Database >  >> RDS >> Oracle

ORA-00942:tabel of weergave bestaat niet - Oracle

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 doet Oracle altijd hoofdlettergevoelige identificatie-overeenkomsten. 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. Hoe kan ik deze query uitvoeren in oracle?

  2. Google Vis geannoteerde tijdlijn van SQL-database met behulp van PHP JSON-probleem

  3. Foutopsporing toont de huidige versie van de opgeslagen procedure niet

  4. Waarschuwing:mysql_num_rows() verwacht dat parameter 1 resource is, object gegeven