我想在我的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中找到序列的问题呢?
答案 0 :(得分:2)
从您链接到的文档:
先决条件
对象必须位于您自己的架构中。
因此,您被授予访问权限这一事实无关紧要。如果您不拥有它,则无法重命名。
答案 1 :(得分:0)
你是否试图通过指定新拥有者来重命名,即使它是相同的:
RENAME owner.old_sequence TO new_owner.new_sequence
顺便说一下,在响应中获取单词“table”是正常的,这只是一个消息问题。