Как переименовать процедуру Oracle

Существует ли способ переименовать процедуру оракула, не имея необходимость отбрасывать и воссоздавать процедуру?

9
задан skaffman 8 February 2010 в 11:28
поделиться

4 ответа

К сожалению, нет эквивалента ALTER TABLE ... RENAME TO для объектов PL / SQL. Поэтому я боюсь, что вам придется отбросить процедуру и создать ее заново с новым именем ....

... если только использование SYNONYM не разрешит вашу привязку. Не зная , почему вы хотите изменить имя процедуры, дать совет немного сложно.

5
ответ дан 4 December 2019 в 23:06
поделиться

Для решения этой проблемы можно использовать процедуру внутри пакета. Затем вы можете использовать СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ПАКЕТ ... и СОЗДАТЬ ИЛИ ЗАМЕНИТЬ ТЕЛО ПАКЕТА ... для достижения своей цели.

2
ответ дан 4 December 2019 в 23:06
поделиться

Невозможно переименовать процедуру, если вы не отбросите и не создадите ее снова. В любом случае:

  • Если у вас много процедур, вам придется использовать PACKAGE вместо PROCEDURE . Таким образом, вам нужно будет только изменить ТЕЛО ПАКЕТА .
  • Если ваша проблема заключается в воссоздании грантов, вы можете легко создать сценарий, который сделает это, запрашивая DBA_TAB_PRIVS (да, также содержит привилегии для процедур).
0
ответ дан 4 December 2019 в 23:06
поделиться

Вы можете эффективно переименовать процедуру, просто создав другую процедуру - с новым именем - которая просто вызывает старую процедуру

create or replace procedure new_procedure_name
as
begin

old_procedure_name;

end;

0
ответ дан 4 December 2019 в 23:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: