在TSQL中,我可以使用类似Select [table] from tablename
的东西来选择一个名为“table”的列。如何转义Oracle中的保留字?
如何在oracle中对保留字执行此操作?
编辑:我试过方括号,双引号,单引号和反引号,他们没有工作......
作为进一步的澄清,我有这一个叫注释列。由于这是一个保留字,所以oracle正在试图用它进行选择,在解析查询时失败。我试过从表名选择“评论”,但它没有奏效。我会检查案件并回来。
在TSQL中,我可以使用类似Select [table] from tablename
的东西来选择一个名为“table”的列。如何转义Oracle中的保留字?
如何在oracle中对保留字执行此操作?
编辑:我试过方括号,双引号,单引号和反引号,他们没有工作......
作为进一步的澄清,我有这一个叫注释列。由于这是一个保留字,所以oracle正在试图用它进行选择,在解析查询时失败。我试过从表名选择“评论”,但它没有奏效。我会检查案件并回来。
从快速搜索,甲骨文似乎使用双引号("
,如"table"
),显然需要正确的情况下 -whereas,有兴趣的人士,当设置为使用双,除了中,MySQL默认使用反引号(`)引用兼容性。
嘿,我可能是错的,但知道我错的人发布了正确答案吗? – eyelidlessness 2009-07-22 00:12:10
我标记了你,因为我试图用双引号来逃避这个词,但它不起作用。 – Spence 2009-07-22 00:18:29
Oracle确实使用双引号,但您很可能需要将对象名称放在大写字母中,例如, “表”。默认情况下,如果您创建不带双引号的对象,例如
CREATE TABLE table AS ...
甲骨文将创建对象为大写。但是,除非使用双引号,否则引用不区分大小写!
Oracle通常需要用双引号来分隔SQL语句中标识符的名称,例如
SELECT "MyColumn" AS "MyColAlias"
FROM "MyTable" "Alias"
WHERE "ThisCol" = 'That Value';
然而,慷慨地允许省略双引号,在这种情况下静静标识符转换为大写:
SELECT MyColumn AS MyColAlias
FROM MyTable Alias
WHERE ThisCol = 'That Value';
被内部转换为类似:
SELECT "ALIAS" . "MYCOLUMN" AS "MYCOLALIAS"
FROM "THEUSER" . "MYTABLE" "ALIAS"
WHERE "ALIAS" . "THISCOL" = 'That Value';
您必须将该列重命名为其他名称,因为Oracle保留了TABLE
。
您可以在oracle视图V$RESERVED_WORDS
中看到Oracle的所有保留字。
双引号在oracle中工作时,我有关键字作为列名之一。
如:
的可能重复甲骨文:究竟是什么在左右的表名引号做(http://stackoverflow.com/questions/563090/oracle-what-exactly-do -quotation-marks-around-the-table-name-do) – user123444555621 2014-05-03 14:39:54