sql >> Databasteknik >  >> RDS >> Oracle

ORA-00942:tabell eller vy finns inte - Oracle

Att sätta dubbla citattecken runt en identifierare i Oracle gör att Oracle behandlar 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. Smärtsamt långsam Postgres-fråga med WHERE på många intilliggande rader

  2. verify_queryable_inventory returnerade ORA-20008:Timeout

  3. Data trunkerade för kolumn 'profile_pic' på rad 1 im mysql

  4. Bästa datatypen för att lagra valutavärden i en MySQL-databas