No TSQL eu poderia usar algo como Select [table] from tablename
para selecionar uma coluna chamada "tabela".
Como faço para palavras reservadas no oracle?
Edit: Eu tentei colchetes, aspas duplas, aspas simples e aspas, eles não funcionam ...
Como esclarecimento adicional, tenho uma coluna que alguém nomeou comentário. Como esta é uma palavra reservada, oracle está jogando uma cambalhota tentando selecionar com ela, falhando ao analisar a consulta. Eu tentei Selecione "comment" no tablename, mas não funcionou. Vou verificar o caso e voltar.
oracle
reserved-words
Spence
fonte
fonte
Respostas:
Em uma pesquisa rápida, o Oracle parece usar aspas duplas (
"
por exemplo"table"
) e, aparentemente, exige o caso correto - enquanto, para qualquer pessoa interessada, o MySQL usa o backticks (`), exceto quando definido para usar aspas duplas para compatibilidade.fonte
O Oracle normalmente requer aspas duplas para delimitar o nome dos identificadores nas instruções SQL, por exemplo
No entanto, permite graciosamente omitir aspas duplas; nesse caso, converte silenciosamente o identificador em maiúsculas:
é convertido internamente para algo como:
fonte
aspas duplas funcionavam no oracle quando eu tinha a palavra-chave como um dos nomes da coluna.
por exemplo:
fonte
O Oracle usa aspas duplas, mas você provavelmente precisará colocar o nome do objeto em maiúsculas, por exemplo, "TABLE". Por padrão, se você criar um objeto sem aspas duplas, por exemplo,
O Oracle criaria o objeto como maiúscula . No entanto, a referência não diferencia maiúsculas de minúsculas, a menos que você use aspas duplas!
fonte
você precisa renomear a coluna para outro nome porque
TABLE
é reservado pelo Oracle.Você pode ver todas as palavras reservadas do Oracle na visualização oracle
V$RESERVED_WORDS
.fonte
ORA-00942
quando tentoselect * from V$RESERVED_WORDS
.