2010-02-08 65 views
8

有沒有辦法重命名oracle過程,而不必刪除並重新創建過程?如何重命名Oracle過程

+1

我可以問爲什麼你不想做一個下降和重新創建? – 2010-02-08 11:30:07

+2

,因爲我必須爲它們創建修復和補助,而且由於我正在進行測試,因此我有很多修改過程。 – ash 2010-02-08 11:44:45

回答

5

非常抱歉,PL/SQL對象沒有相應的ALTER TABLE ... RENAME TO。所以,我恐怕你將不得不放棄程序,並重新創建新的名稱....

...除非使用SYNONYM將解決您的綁定。不知道爲什麼你想改變過程名稱,有點難以給出建議。

2

解決方法是使用包內的過程。那麼你可以使用CREATE OR REPLACE PACKAGE ...CREATE OR REPLACE PACKAGE BODY ...來實現你的目標。

0

除非您再次刪除並重新創建,否則無法重命名該過程。無論如何:

  • 如果你有很多程序,你必須使用PACKAGE s而不是PROCEDURE s。這樣你只需要改變PACKAGE BODY
  • 如果您的問題是重新創建贈款,您可以輕鬆創建一個腳本來執行查詢DBA_TAB_PRIVS(是的,也包含過程的權限)。
1

您可以通過簡單地創建另一個過程有效地重新命名一個步驟 - 用新的名稱 - 簡單地調用舊程序

創建或替換程序new_procedure_name

開始

old_procedure_name;

end;