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