2010-02-08 140 views
8

¿Hay alguna manera de cambiar el nombre de un procedimiento de oráculo, sin tener que soltar y volver a crear el procedimiento?Cómo cambiar el nombre de un procedimiento de Oracle

+1

¿Puedo preguntar por qué no quiere hacer una caída y volver a crear? –

+2

porque tendré que crear las correcciones y las subvenciones para todas ellas, y dado que estoy realizando pruebas, tengo muchos procedimientos para modificar. – ash

Respuesta

5

Desafortunadamente no hay un equivalente de ALTER TABLE ... RENAME TO para objetos PL/SQL. Así que me temo que tendrá que abandonar el procedimiento y crearlo de nuevo con el nuevo nombre ...

... a menos que con un SYNONYM se resuelva su enlace. Sin saber por qué desea cambiar el nombre del procedimiento, es un poco difícil dar consejos.

2

Una forma de evitar esto sería utilizar un procedimiento dentro de un paquete. Entonces puede usar CREATE OR REPLACE PACKAGE ... y CREATE OR REPLACE PACKAGE BODY ... para lograr su objetivo.

0

No hay forma de cambiar el nombre de un procedimiento a menos que lo suelte y lo vuelva a crear. De todos modos:

  • Si usted tiene una gran cantidad de procedimientos que tendría que utilizar PACKAGE s en lugar de PROCEDURE s. De esta forma, solo necesitarás cambiar el PACKAGE BODY.
  • Si su problema es recrear las concesiones, puede crear fácilmente una secuencia de comandos para hacerlo consultando DBA_TAB_PRIVS (sí, también contiene privilegios para los procedimientos).
1

Puede cambiar el nombre efectivamente un procedimiento por el simple creación de otro procedimiento - con el nuevo nombre - que simplemente llama al antiguo procedimiento

crear o sustituir procedimiento new_procedure_name
como
comenzar

old_procedure_name;

final;

Cuestiones relacionadas