我想重命名Oracle SQL數據庫中的序列(我們稱之爲OLD_SEQUENCE
)。每RENAME文檔,我可以使用該命令重命名序列:重命名在Oracle SQL中找不到序列SQL
Use the
RENAME
statement to rename a table, view, sequence, or private synonym.
因此,使用本文檔中,我試圖創建下面的命令:
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序列?
你是序列的所有者嗎?你可以顯示查詢'user_sequences'來顯示序列名稱的結果嗎?是否有可能將舊序列創建爲區分大小寫的標識符,並且您的'rename'命令中沒有使用區分大小寫的標識符? –
@JustinCave我不是原始的所有者,但通過'GRANT'命令授予訪問權限。對於它的價值,我可以在這個擁有者下創建新的序列和ALTER現有的序列。我的重命名使用了表名稱的精確複製粘貼,因此區分大小寫應該沒有關係。 – Thunderforge
@Thunderforge你從哪裏複製序列名?什麼'從下列(sequence_name)='old_sequence';'給出你的all_sequences select sequence_name?如果不是全部都是大寫的,那麼當你使用它時,你將需要用雙引號括住你的名字,例如。 ''將old_sequence重命名爲...' – Boneist