En TSQL podría usar algo como Select [table] from tablename
seleccionar una columna llamada "tabla".
¿Cómo hago esto para palabras reservadas en Oracle?
Editar: he intentado usar corchetes, comillas dobles, comillas simples y comillas inversas, no funcionan ...
Como aclaración adicional, tengo una columna que alguien mencionó comentar. Como esta es una palabra reservada, Oracle está lanzando un intento tambaleante de seleccionar con ella, falla al analizar la consulta. Intenté Seleccionar "comentario" de nombre de tabla pero no funcionó. Revisaré el caso y volveré.
oracle
reserved-words
Spence
fuente
fuente
Respuestas:
A partir de una búsqueda rápida, Oracle parece usar comillas dobles (
"
p"table"
. Ej. ) Y aparentemente requiere el caso correcto, mientras que, para cualquier persona interesada, MySQL usa de forma predeterminada comillas invertidas (`) excepto cuando está configurado para usar comillas dobles para compatibilidad.fuente
Oracle normalmente requiere comillas dobles para delimitar el nombre de los identificadores en las declaraciones SQL, por ejemplo
Sin embargo, gentilmente permite omitir las comillas dobles, en cuyo caso convierte silenciosamente el identificador a mayúsculas:
se convierte internamente en algo como:
fuente
las comillas dobles funcionaron en Oracle cuando tenía la palabra clave como uno de los nombres de columna.
p.ej:
fuente
Oracle utiliza comillas dobles, pero lo más probable es que necesite colocar el nombre del objeto en mayúsculas, por ejemplo, "TABLE". Por defecto, si crea un objeto sin comillas dobles, p. Ej.
Oracle crearía el objeto en mayúsculas . Sin embargo, la referencia no distingue entre mayúsculas y minúsculas a menos que utilice comillas dobles.
fuente
debe cambiar el nombre de la columna a otro nombre porque
TABLE
está reservado por Oracle.Puede ver todas las palabras reservadas de Oracle en la vista de oráculo
V$RESERVED_WORDS
.fuente
ORA-00942
cuando intento unselect * from V$RESERVED_WORDS
.