重命名Oracle表

时间:2015-01-08 10:32:28

标签: sql oracle oracle11g alter-table table-rename

ALTER TABLE RENAME语句和RENAME TABLE语句之间有什么区别。

之间
Alter table old_table_name rename to new_table_name

rename table old_table_name to new_table_name.

1 个答案:

答案 0 :(得分:7)

  

将表old_table_name重命名为new_table_name。

这种语法错了。不需要table个关键字。正确的语法是 -

rename old_table_name to new_table_name;

现在,让我们看看alter语句与简单rename语句之间的差异。

我有两个架构,SCOTTLALIT

SQL> SHOW USER
USER is "SCOTT"
SQL>
SQL> create table t(id number);

Table created.

SQL> rename t to t_new;

Table renamed.

SQL> alter table t_new rename to t_newer;

Table altered.

因此,两个语句都在同一个schema

让我们连接到其他架构 -

SQL> SHOW USER
USER is "LALIT"
SQL>
SQL> create table t(id number);

Table created.

SQL> rename scott.t_newer to t_newest;
rename scott.t_newer to t_newest
       *
ERROR at line 1:
ORA-01765: specifying owner's name of the table is not allowed


SQL> alter table scott.t_newer rename to t_newest;

Table altered.

因此,您会看到错误ORA-01765: specifying owner's name of the table is not allowed。那个简单的rename语句在其他模式对象上失败的地方。只有ALTER语句有效。