sql >> Database teknologi >  >> RDS >> Oracle

ORA-00942:tabel eller visning findes ikke - Oracle

Angivelse af dobbelte anførselstegn omkring en identifikator i Oracle får Oracle til at behandle identifikatoren som case-sensitive i stedet for at bruge standarden for case-insensitivity. Hvis du opretter en tabel (eller en kolonne) med dobbelte anførselstegn omkring navnet, skal du altid henvise til identifikatoren med dobbelte anførselstegn og ved at angive sagen korrekt (med undtagelse af alle store bogstaver, hvor dobbelte anførselstegn er meningsløse ).

Under dækkene laver Oracle altid identifikation, der skelner mellem store og små bogstaver. Men den kaster altid identifikatorer, der ikke er dobbelt-citeret, til store bogstaver, før matchningen udføres. Hvis du sætter dobbelte anførselstegn omkring en identifikator, springer Oracle over castingen til store bogstaver.

Så hvis du gør noget som

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 noget lignende

 SELECT * FROM "my_table"

vil mislykkes.

På den anden side, hvis du gør noget som

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

du kan ikke gøre

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

men dette

SELECT * FROM "my_other_table"

vil virke




  1. SQL Server 2005 Hvordan opretter man en unik begrænsning?

  2. Hvordan designer jeg en tabel, som gemmer meget store data?

  3. Bitmanipulation og MySQL-hentning i PHP

  4. mysqld_safe Directory '/var/run/mysqld' for UNIX socket fil eksisterer ikke