重命名在Oracle SQL中找不到序列

时间:2016-03-15 16:16:42

标签: sql oracle

我想在我的Oracle SQL数据库中重命名一个序列(我们称之为OLD_SEQUENCE)。根据{{​​3}}文档,我可以使用该命令重命名序列:

  

使用RENAME语句重命名表,视图,序列或私有同义词。

因此,使用此文档,我尝试创建以下命令:

RENAME old_sequence TO new_sequence

但不幸的是,这产生了以下SQL错误:

Error executing SQL RENAME old_sequence TO new_sequence: 
ORA-04043: object old_sequence does not exist

我确认这正是序列在数据库中的显示方式,所以我尝试添加所有者

RENAME owner.old_sequence TO new_sequence

但这不起作用

Error executing SQL RENAME owner.old_sequence TO new_sequence: 
ORA-01765: specifying owner's name of the table is not allowed

我觉得奇怪的是,这里的错误是它认为它是一个表而不是一个序列。

当我将所有者名称应用于两者时,我得到相同的结果:

RENAME owner.old_sequence TO owner.new_sequence

那么如何解决重命名无法在Oracle SQL中找到序列的问题呢?

2 个答案:

答案 0 :(得分:2)

从您链接到的文档:

  

先决条件

     

对象必须位于您自己的架构中。

因此,您被授予访问权限这一事实无关紧要。如果您不拥有它,则无法重命名。

答案 1 :(得分:0)

你是否试图通过指定新拥有者来重命名,即使它是相同的:

  

RENAME owner.old_sequence TO new_owner.new_sequence

顺便说一下,在响应中获取单词“table”是正常的,这只是一个消息问题。