oracle两个 转义,如何在Oracle中转义保留字?

在TSQL中,我可以使用Select [table] from tablename之类的东西来选择一个名为"表"的列。

如何在oracle中对保留字执行此操作?

编辑:我试过方括号,双引号,单引号和反引号,它们不起作用...

作为进一步的说明,我有一列名为"评论"的人。 由于这是一个保留字,因此oracle正在使尝试选择它的方法不稳定,因此在解析查询时会失败。 我试过从表名中选择"注释",但是没有用。 我会检查情况再回来。

Oracle的可能重复项:表名两端的引号究竟是做什么的?

通过快速搜索,Oracle似乎使用了双引号(",例如"table"),并且显然需要正确的大小写,而对于感兴趣的人,MySQL默认使用反引号(`),除非设置为对双引号使用。兼容性。

嘿,我可能错了,但是知道我错了的人可以发布正确的答案吗?

我把你打倒了,因为我试图用双引号使这个单词转义,但没有用。

关于双引号,双眼失明是正确的。但是,如果使用带引号的名称,则Oracle区分大小写(通常Oracle名称全为大写)。

病态请仔细检查所有内容,如果我可以使用双引号将其标记为正确,请返回并标记为正确。

您是否可以编辑繁荣的答案,以补充您必须完全限定名称并提供正确的大小写。

摘自萨特作品的特定译本。 Havent能够自己进行追踪。

@Spence,你是什么意思?您不必"完全限定"名称-您要做的就是正确输入大小写。

默认情况下,Oracle将大写所有标识符。因此,如果您需要小写字符或特殊字符,或者标识符是Oracle保留字,则需要将其括在双引号中。由于双引号保留大小写,因此标识符也必须是正确的大小写。

我使用SQL Developer v4创建了一个带有"别名"字段的表,并命中了Oracle 11g Release 2 Express数据库。当我写" ALIAS"而不是别名时,我的选择起作用了。

不适用于触发器,请尝试为名称违反ORA-30507(例如DATABASE)的表创建触发器。

在所有大写的" TABLE"中尝试。

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中起作用。

例如:

select t."size" from table t

Oracle确实使用双引号,但是您最有可能需要将对象名称大写,例如"表"。默认情况下,如果您创建的对象没有双引号,例如

CREATE TABLE table AS ...

Oracle将对象创建为大写。但是,除非使用双引号,否则引用不区分大小写!

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

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

尝试select * from V$RESERVED_WORDS时得到ORA-00942。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值