Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 重命名为保留字的列_Sql_Oracle_Rename_Reserved Words - Fatal编程技术网

Sql 重命名为保留字的列

Sql 重命名为保留字的列,sql,oracle,rename,reserved-words,Sql,Oracle,Rename,Reserved Words,我在Oracle中有一个名为CONTACT_DATA的表,它有一个名为NUMBER的列。我想将此字段重命名为PHONE_NUMBER,但以下操作不起作用,因为NUMBER在Oracle中是保留字: ALTER TABLE CONTACT_DATA RENAME COLUMN NUMBER TO PHONE_NUMBER; 我看过这些论坛,发现了如何通过保留字的列进行选择和排序。但是,在本例中,我更愿意重命名该列。此外,我希望保留现有数据,因此删除表并重新创建它不是一个选项。我正在使用Oracl

我在Oracle中有一个名为CONTACT_DATA的表,它有一个名为NUMBER的列。我想将此字段重命名为PHONE_NUMBER,但以下操作不起作用,因为NUMBER在Oracle中是保留字:

ALTER TABLE CONTACT_DATA RENAME COLUMN NUMBER TO PHONE_NUMBER;
我看过这些论坛,发现了如何通过保留字的列进行选择和排序。但是,在本例中,我更愿意重命名该列。此外,我希望保留现有数据,因此删除表并重新创建它不是一个选项。我正在使用Oracle 11.2版,有人能帮忙吗?

您尝试过:

ALTER TABLE CONTACT_DATA RENAME COLUMN "NUMBER" TO PHONE_NUMBER;

Oracle为此使用双引号作为转义字符。

您是否尝试使用与在语句中选择或排序时相同的方法对其进行重命名?在所有情况下,您都需要对其进行转义,以便不将其视为关键字。所有符合标准的DBMS都使用双引号引用保留字,而不仅仅是Oracle。感谢您的帮助!