16

我有一个表,其中有一列名为RANK,它是 Oracle 中的一个关键字。

现在我需要在这个表中插入数据:

insert into mytbl (RANK)
select RANK from other_table

执行此查询时出现以下错误:

ORA-00907: 缺少右括号

如何转义关键字?

4

4 回答 4

24

Oracle 使用双引号"对保留字进行转义。

insert into mytbl ("RANK")
select "RANK" 
from other_table

另一个注意事项,Oracle 也需要正确的大小写。

于 2012-07-24T11:35:35.143 回答
7

首先,您不能使用保留关键字作为列名和表名。

Oracle 使用双引号"来解析保留关键字,因此您可以通过将关键字放在双引号中来解析关键字""

insert into mytbl ("RANK")
select "RANK" 
from other_table
于 2012-07-24T11:40:58.477 回答
0

之前已经提到过,但要强调的是,在所有用途中都必须完全匹配大小写。当我需要提取列并对其进行排序时,“组”不起作用。在这两种情况下都必须是“GROUP”,例如GROUP

select "GROUP" from PICKLIST
order by "GROUP"
于 2022-02-02T16:13:16.637 回答
0

就我而言,我的查询中有 , 。

UPDATE SCHEMA.TABLE SET PART_NO = '1S7F530400', WHERE PART_NO = '1S7?F5304?00';

这应该是:

UPDATE SCHEMA.TABLE SET PART_NO = '1S7F530400' WHERE PART_NO = '1S7?F5304?00';
于 2017-03-27T02:13:32.060 回答