¿Cómo puedo escapar de una palabra reservada en Oracle?
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: Probé con llaves cuadradas, comillas dobles, comillas simples y comillas invertidas, pero no funcionan...
Como aclaración adicional, tengo una columna que alguien nombró comentario. Como se trata de una palabra reservada, Oracle está lanzando un tambaleo al intentar seleccionarla, falla al analizar la consulta. Intenté seleccionar "comentario" del nombre de la tabla pero no funcionó. Revisaré el caso y volveré.
De una búsqueda rápida, Oracle parece usar comillas dobles ( "
, por ejemplo "table"
) y aparentemente requiere el uso de mayúsculas y minúsculas correctas , mientras que, para cualquiera interesado, MySQL utiliza por defecto comillas invertidas (`) excepto cuando está configurado para usar comillas dobles por compatibilidad.
Oracle normalmente requiere comillas dobles para delimitar el nombre de los identificadores en declaraciones SQL, por ejemplo
SELECT "MyColumn" AS "MyColAlias"
FROM "MyTable" "Alias"
WHERE "ThisCol" = 'That Value';
Sin embargo, permite omitir las comillas dobles, en cuyo caso convierte silenciosamente el identificador a mayúsculas:
SELECT MyColumn AS MyColAlias
FROM MyTable Alias
WHERE ThisCol = 'That Value';
se convierte internamente a algo como:
SELECT "ALIAS" . "MYCOLUMN" AS "MYCOLALIAS"
FROM "THEUSER" . "MYTABLE" "ALIAS"
WHERE "ALIAS" . "THISCOL" = 'That Value';
Las comillas dobles funcionaron en Oracle cuando tenía la palabra clave como uno de los nombres de la columna.
p.ej:
select t."size" from table t
Oracle utiliza comillas dobles, pero lo más probable es que necesite colocar el nombre del objeto en mayúsculas, por ejemplo, "TABLA". De forma predeterminada, si crea un objeto sin comillas dobles, por ejemplo
CREATE TABLE table AS ...
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.