W TSQL mógłbym użyć czegoś w rodzaju Select [table] from tablename
wybrania kolumny o nazwie „tabela”.
Jak to zrobić dla słów zastrzeżonych w wyroczni?
Edycja: próbowałem nawiasów kwadratowych, podwójnych cudzysłowów, pojedynczych cudzysłowów i odwrotnych cudzysłowów, nie działają ...
Jako dalsze wyjaśnienie mam kolumnę, którą ktoś nazwał komentarzem. Ponieważ jest to zarezerwowane słowo, wyrocznia rzuca chwiejną próbę wybrania za jego pomocą, co kończy się niepowodzeniem podczas analizowania zapytania. Próbowałem Wybierz „komentarz” z nazwy tabeli, ale to nie zadziałało. Sprawdzę sprawę i wrócę.
oracle
reserved-words
Spence
źródło
źródło
Odpowiedzi:
Po szybkim wyszukiwaniu Oracle wydaje się używać podwójnych cudzysłowów (
"
np."table"
) I najwyraźniej wymaga poprawnej wielkości liter - podczas gdy dla każdego zainteresowanego MySQL domyślnie używa lewych apostrofów (`), z wyjątkiem sytuacji, gdy ustawiono używanie podwójnych cudzysłowów w celu zapewnienia zgodności.źródło
Oracle zwykle wymaga podwójnych cudzysłowów, aby oddzielić nazwy identyfikatorów w instrukcjach SQL, np
SELECT "MyColumn" AS "MyColAlias" FROM "MyTable" "Alias" WHERE "ThisCol" = 'That Value';
Jednak łaskawie pozwala na pominięcie podwójnych cudzysłowów, w takim przypadku po cichu konwertuje identyfikator na wielkie litery:
SELECT MyColumn AS MyColAlias FROM MyTable Alias WHERE ThisCol = 'That Value';
jest wewnętrznie konwertowany na coś takiego:
SELECT "ALIAS" . "MYCOLUMN" AS "MYCOLALIAS" FROM "THEUSER" . "MYTABLE" "ALIAS" WHERE "ALIAS" . "THISCOL" = 'That Value';
źródło
podwójne cudzysłowy działały w wyroczni, gdy jako jedną z nazw kolumn miałem słowo kluczowe.
na przykład:
select t."size" from table t
źródło
Oracle używa cudzysłowów, ale najprawdopodobniej będziesz musiał wpisać nazwę obiektu wielkimi literami, np. „TABELA”. Domyślnie, jeśli tworzysz obiekt bez cudzysłowów, np
CREATE TABLE table AS ...
Oracle utworzyłoby obiekt jako wielkie litery . Jednak w odwołaniach nie jest rozróżniana wielkość liter, chyba że używasz cudzysłowów!
źródło
musisz zmienić nazwę kolumny na inną, ponieważ
TABLE
jest zarezerwowana przez Oracle.Możesz zobaczyć wszystkie zastrzeżone słowa Oracle w widoku Oracle
V$RESERVED_WORDS
.źródło
ORA-00942
kiedy próbujęselect * from V$RESERVED_WORDS
.