2010-02-08 15 views
8

Gibt es eine Möglichkeit, eine Oracle-Prozedur umzubenennen, ohne die Prozedur löschen und neu erstellen zu müssen?So benennen Sie eine Oracle-Prozedur um

+1

Kann ich fragen, warum Sie nicht einen Tropfen machen und neu erstellen möchten? –

+2

, weil ich die Korrekturen und die Zuschüsse für alle von ihnen erstellen müsste, und da ich Tests mache, habe ich viele Prozeduren zu ändern. – ash

Antwort

5

Leider gibt es kein ALTER TABLE ... RENAME TO für PL/SQL-Objekte. Also ich fürchte, Sie müssen die Prozedur löschen und neu erstellen mit dem neuen Namen ....

... es sei denn, mit einem SYNONYM lösen Sie Ihre Bindung. Ohne zu wissen, warum Sie den Namen der Prozedur ändern möchten, ist es ein bisschen schwierig, Rat zu geben.

2

Ein Weg um dies zu tun wäre mit einem Verfahren in einem Paket. Dann könnten Sie CREATE OR REPLACE PACKAGE ... und CREATE OR REPLACE PACKAGE BODY ... verwenden, um Ihr Ziel zu erreichen.

0

Es gibt keine Möglichkeit, eine Prozedur umzubenennen, wenn Sie sie nicht löschen und erneut erstellen. Wie dem auch sei:

  • Wenn Sie eine Menge von Verfahren haben würden Sie PACKAGE s statt PROCEDURE s verwenden. Auf diese Weise müssten Sie nur die PACKAGE BODY ändern.
  • Wenn Ihr Problem ist, die Zuschüsse wieder herzustellen, können Sie leicht ein Skript erstellen, um es abzufragen DBA_TAB_PRIVS (ja, enthält auch Berechtigungen für Verfahren).
1

Sie können effektiv eine Prozedur umbenennen, indem einfach ein anderes Verfahren zu schaffen - mit dem neuen Namen - das ruft einfach die alte Prozedur

erstellen oder ersetzen Verfahren new_procedure_name
als

beginnen

old_procedure_name;

Ende;

Verwandte Themen