如何在Oracle中转义保留字?

在TSQL中,我可以使用类似于Select [table] from tablename来select一个名为“表”的列。

我如何做到这一点在oracle中的保留字?

编辑:我试过方括号,双引号,单引号和反引号,他们不工作…

作为进一步澄清,我有一个名为评论的专栏。 由于这是一个保留字oracle是夹着一个摇摆不定的select,它parsing查询时失败。 我试过从表名select“评论”,但没有奏效。 我会检查案件,回来。

从快速search来看,Oracle似乎使用双引号( " ,例如"table",显然需要正确的用例 ,而对于任何感兴趣的用户,MySQL默认使用反引号(`),除非设置为使用双引号兼容。

Oracle通常需要双引号来分隔SQL语句中标识符的名称,例如

 SELECT "MyColumn" AS "MyColAlias" FROM "MyTable" AS "Alias" WHERE "ThisCol" = 'That Value'; 

然而,它优雅地允许省略双引号,在这种情况下,它悄悄地将标识符转换为大写:

 SELECT MyColumn AS MyColAlias FROM MyTable AS Alias WHERE ThisCol = 'That Value'; 

内部转换为如下所示:

 SELECT "ALIAS" . "MYCOLUMN" AS "MYCOLALIAS" FROM "THEUSER" . "MYTABLE" AS "ALIAS" WHERE "ALIAS" . "THISCOL" = 'That Value'; 

Oracle不会使用双引号,但是您很可能需要将对象名称放在大写字母中,例如“TABLE”。 默认情况下,如果你创build一个没有双引号的对象,例如

 CREATE TABLE table AS ... 

Oracle会以大写forms创build对象。 但是,引用不区分大小写,除非使用双引号!

当我将关键字作为列名之一时,双引号在oracle中起作用。

例如:

 select t."size" from table t 

您必须将列重命名为其他名称,因为TABLE是Oracle保留的。

您可以在oracle视图V$RESERVED_WORDS看到Oracle的所有保留字。