Как переименовать процедуру Oracle - PullRequest
9 голосов
/ 08 февраля 2010

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

Ответы [ 4 ]

5 голосов
/ 08 февраля 2010

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

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

2 голосов
/ 08 февраля 2010

Обходным путем было бы использование процедуры внутри пакета. Тогда вы можете использовать CREATE OR REPLACE PACKAGE ... и CREATE OR REPLACE PACKAGE BODY ... для достижения своей цели.

1 голос
/ 09 февраля 2010

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

создать или заменить процедуру new_procedure_name
а
начало

old_procedure_name;

конец;

0 голосов
/ 08 февраля 2010

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

  • Если у вас много процедур, вам придется использовать PACKAGE с вместо PROCEDURE с. Таким образом, вам нужно всего лишь изменить PACKAGE BODY.
  • Если ваша задача состоит в том, чтобы воссоздать гранты, вы можете легко создать сценарий для выполнения запроса DBA_TAB_PRIVS (да, также содержит привилегии для процедур).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...