Переименование хранимой процедуры в пакете в Oracle 10g - PullRequest
0 голосов
/ 22 марта 2012

У меня SP в пакете в Oracle 10g. Я использую Oracle SQL Developer для доступа к БД. Как я могу переименовать этот SP? Одним из решений является следующая команда.

create or replace procedure new_procedure_name
as
begin 
old_procedure_name; 
end;

Это решение я нашел в StackOverflow ( старое сообщение ). Также многие люди предположили, что нам нужно удалить и создать новый SP. Мои вещи находятся в пакете, и я не думаю, что вышеупомянутая команда работает там.

Ответы [ 3 ]

3 голосов
/ 22 марта 2012

То, что вы опубликовали:

create or replace procedure new_procedure_name as
begin 
old_procedure_name; 
end;

- правильный способ сделать это.Однако это только вызовет у вас проблемы.Нет очевидной связи между old_procedure_name и new_procedure_name (хотя, очевидно, есть и обратный путь).

Лучше найти место, где ваш пакет / процедура хранится в вашей системе контроля версий.Измените имя, зафиксируйте его, а затем перекомпилируйте пакет.

Это применимо, независимо от того, является ли это автономной функцией / процедурой или процедурой внутри пакета.

Перекомпиляция фактически является "уроните ", поскольку вам нужно заменить текущую версию новой, то есть я полностью согласен с вашим связанным вопросом.

0 голосов
/ 22 марта 2012

Спасибо @Ben и @AlejoBrz за то, что нашли время ответить на мой вопрос. Это то, что сделал более опытный разработчик, который помог мне. Просто перейдите к пакету, щелкните по нему правой кнопкой мыши и скомпилируйте его, затем переименуйте SP под Pckg_body под другим именем, переименуйте SP под пакетом, перекомпилируйте и имя будет изменено. @AlejoBrz, я не знал, что есть PCKG и PCKG_BODy, поэтому я заблудился относительно того, почему при щелчке правой кнопкой мыши я не получаю опцию drop / create. Это происходит только для PCKG, а не для PCKG_body.

0 голосов
/ 22 марта 2012

Вам просто нужно открыть пакет, изменить имя процедуры и перекомпилировать.Когда вы открываете его, он должен сказать

create or replace package ...

(в качестве варианта для создания или замены процедуры)

...