如何在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的所有保留字。