在TSQL中,我可以使用Select [table] from tablename
之类的东西来选择名为“table”的列。
如何在oracle中保留单词?
编辑:我试过方括号,双引号,单引号和反引号,它们不起作用......
作为进一步澄清,我有一个名为评论的专栏。因为这是一个保留字oracle正在试图用它来选择摇摆,它在解析查询时失败了。我试过从表名中选择“评论”,但它没有用。我会检查案件并回来。
答案 0 :(得分:171)
通过快速搜索,Oracle似乎使用双引号("
,例如"table"
)并且显然需要正确的大小写 - 对于任何感兴趣的人,MySQL默认值使用反引号(`)除非设置为使用双引号以实现兼容性。
答案 1 :(得分:31)
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';
答案 2 :(得分:7)
双引号在oracle中工作。
例如:
select t."size" from table t
答案 3 :(得分:3)
Oracle确实使用双引号,但您很可能需要将对象名称放在大写字母中,例如“表”。默认情况下,如果创建没有双引号的对象,例如
CREATE TABLE table AS ...
Oracle会将对象创建为大写。但是,除非您使用双引号,否则引用不区分大小写!
答案 4 :(得分:-7)
您必须将列重命名为其他名称,因为Oracle保留了TABLE
。
您可以在oracle视图V$RESERVED_WORDS
中查看Oracle的所有保留字。