我有一个旧表,其中有一个名为“RANK”的列,此名称是Oracle中的关键字, 我不知道这个表是如何创建的,我不能重命名这个列,因为它被其他应用程序使用。 现在我需要在此表中插入数据:
insert into mytbl (RANK)
select RANK from other_table
执行此查询时出现以下错误:
ORA-00907:缺少右括号
请说,我该如何解决这个问题?
感谢。
答案 0 :(得分:20)
Oracle使用双引号"
来转义保留字。
insert into mytbl ("RANK")
select "RANK"
from other_table
另一个注意事项,Oracle也需要正确的案例。
答案 1 :(得分:6)
首先,您不应将保留关键字用作列名和表名。
Oracle使用双引号"
来解析保留的关键字,以便您可以解析关键字
将其置于双引号""
。
insert into mytbl ("RANK")
select "RANK"
from other_table
答案 2 :(得分: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';