我有一个表,其中有一列名为RANK
,它是 Oracle 中的一个关键字。
现在我需要在这个表中插入数据:
insert into mytbl (RANK)
select RANK from other_table
执行此查询时出现以下错误:
ORA-00907: 缺少右括号
如何转义关键字?
Oracle 使用双引号"
对保留字进行转义。
insert into mytbl ("RANK")
select "RANK"
from other_table
另一个注意事项,Oracle 也需要正确的大小写。
首先,您不能使用保留关键字作为列名和表名。
Oracle 使用双引号"
来解析保留关键字,因此您可以通过将关键字放在双引号中来解析关键字""
。
insert into mytbl ("RANK")
select "RANK"
from other_table
之前已经提到过,但要强调的是,在所有用途中都必须完全匹配大小写。当我需要提取列并对其进行排序时,“组”不起作用。在这两种情况下都必须是“GROUP”,例如GROUP
select "GROUP" from PICKLIST
order by "GROUP"
就我而言,我的查询中有 , 。
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';