Oracle
 sql >> Datenbank >  >> RDS >> Oracle

ORA-00942:Tabelle oder Ansicht existiert nicht – Oracle

Das Setzen von doppelten Anführungszeichen um einen Bezeichner in Oracle bewirkt, dass Oracle den Bezeichner als Groß-/Kleinschreibung behandelt, anstatt den Standard der Groß-/Kleinschreibung zu verwenden. Wenn Sie eine Tabelle (oder eine Spalte) mit doppelten Anführungszeichen um den Namen erstellen, müssen Sie sich immer mit doppelten Anführungszeichen und mit korrekter Groß- und Kleinschreibung auf den Bezeichner beziehen (mit Ausnahme aller Bezeichner in Großbuchstaben, bei denen doppelte Anführungszeichen keine Bedeutung haben ).

Unter der Decke führt Oracle immer einen Identifikator-Abgleich mit Beachtung der Groß- und Kleinschreibung durch. Bezeichner, die nicht in doppelte Anführungszeichen gesetzt sind, werden jedoch immer in Großbuchstaben umgewandelt, bevor der Abgleich durchgeführt wird. Wenn Sie einen Bezeichner in doppelte Anführungszeichen setzen, überspringt Oracle die Umwandlung in Großbuchstaben.

Wenn Sie also so etwas tun wie

CREATE TABLE my_table( 
col1 number,
col2 number
)

du kannst

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

aber so etwas wie

 SELECT * FROM "my_table"

wird fehlschlagen.

Auf der anderen Seite, wenn Sie etwas wie

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

das kannst du nicht

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

aber das hier

SELECT * FROM "my_other_table"

wird funktionieren