如何处理以保留的Sql关键字命名的表列?

Rad*_*adi 14 sql oracle

我有一个旧表有一个名为"RANK"的列,这个名字是Oracle中的一个关键字,我不知道这个表是如何创建的,我不能重命名这个列,因为它被其他应用程序使用.现在我需要在此表中插入数据:

insert into mytbl (RANK)
select RANK from other_table
Run Code Online (Sandbox Code Playgroud)

执行此查询时,我收到以下错误:

ORA-00907:缺少右括号

请问,我该如何解决这个问题?

谢谢.

Tar*_*ryn 21

Oracle使用双引号"来转义保留字.

insert into mytbl ("RANK")
select "RANK" 
from other_table
Run Code Online (Sandbox Code Playgroud)

另外需要注意的是,Oracle也需要正确的案例.


mr_*_*air 6

首先,您不应将保留关键字用作列名和表名.

Oracle使用Double引号"来解析保留的关键字,以便您可以通过将关键字置于双引号中来解析关键字"".

insert into mytbl ("RANK")
select "RANK" 
from other_table
Run Code Online (Sandbox Code Playgroud)