In TSQL könnte ich so etwas wie Select [table] from tablename
eine Spalte mit dem Namen "Tabelle" auswählen.
Wie mache ich das für reservierte Wörter in Orakel?
Bearbeiten: Ich habe versucht, eckige Klammern, doppelte Anführungszeichen, einfache Anführungszeichen und Rückzitate, sie funktionieren nicht ...
Zur weiteren Verdeutlichung habe ich eine Spalte, die jemand Kommentar genannt hat. Da dies ein reserviertes Wort ist, versucht Orakel einen wackeligen Versuch, damit auszuwählen, was beim Parsen der Abfrage fehlschlägt. Ich habe versucht, "Kommentar" aus dem Tabellennamen auszuwählen, aber es hat nicht funktioniert. Ich werde den Fall prüfen und zurückkommen.
oracle
reserved-words
Spence
quelle
quelle
Antworten:
Bei einer schnellen Suche scheint Oracle doppelte Anführungszeichen zu verwenden (
"
z. B."table"
) und erfordert anscheinend den richtigen Fall . Für alle Interessierten verwendet MySQL standardmäßig Backticks (`), es sei denn, aus Kompatibilitätsgründen werden doppelte Anführungszeichen verwendet.quelle
Oracle benötigt normalerweise doppelte Anführungszeichen, um den Namen von Bezeichnern in SQL-Anweisungen abzugrenzen, z
Es erlaubt jedoch freundlicherweise, die doppelten Anführungszeichen wegzulassen. In diesem Fall konvertiert es den Bezeichner leise in Großbuchstaben:
wird intern konvertiert in etwas wie:
quelle
doppelte Anführungszeichen funktionierten in Oracle, als ich das Schlüsselwort als einen der Spaltennamen hatte.
z.B:
quelle
Oracle verwendet doppelte Anführungszeichen, aber Sie müssen den Objektnamen höchstwahrscheinlich in Großbuchstaben setzen, z. B. "TABLE". Wenn Sie ein Objekt ohne doppelte Anführungszeichen erstellen, z
Oracle würde das Objekt als Großbuchstaben erstellen . Bei der Referenzierung wird jedoch nicht zwischen Groß- und Kleinschreibung unterschieden, es sei denn, Sie verwenden doppelte Anführungszeichen!
quelle
Sie müssen die Spalte in einen anderen Namen umbenennen, da dies
TABLE
von Oracle reserviert wird.Sie können alle reservierten Wörter von Oracle in der Orakelansicht sehen
V$RESERVED_WORDS
.quelle
ORA-00942
wenn ich es versucheselect * from V$RESERVED_WORDS
.