ALTER PROCEDURE
Описание
ALTER PROCEDURE изменяет существующую сохраненную процедуру. Эта инструкция может изменять входные параметры, выходные параметры и тело процедуры.
Заголовок и тело процедуры должны быть включены в инструкцию ALTER PROCEDURE полнонстью. Синтаксис точно такой же, как у инструкции CREATE PROCEDURE за исключением ключевого слова CREATE, которое заменено на ALTER.
Процедуры, использующиеся в настоящий момент, не могут быть изменены, пока не завершится их использование.
Изменения созданные инструкцией ALTER PROCEDURE, дают эффект, как только они произведены. Изменения распространяются на все приложения, которые используют процедуру, без необходимости их перекомпиляции и сборки.
Предостережение: Будте внимательны при изменении типов и числа входных и выходных параметров процедуры, так как существующий код может предполагать, что процедура имеет оригинальный формат.
Процедура может быть изменена ее создателем или пользователем SYSDBA.
Синтаксис
ALTER PROCEDURE name [(param <datatype> [, param <datatype> ...])] [RETURNS (param <datatype> [, param <datatype> ...])] AS <procedure_body> [terminator]
Аргумент | Описание |
---|---|
name |
Имя существующей процедуры. |
param <datatype> |
Входные параметры, используемые процедурой. Допустимые типы данных перечисленны в Типы данных. |
RETURNS param <datatype> |
Выходные параметры, используемые процедурой. Допустимые типы данных перечислены в Типы данных. |
<datatype> |
Тело процедуры. Включает:
|
terminator |
Терминатор, определенный для ISQL командой SET TERM, указывающий конец тела процедуры. |
Примеры
Эта инструкция изменяет процедуру GET_EMP_PROJ, изменяя возвращаемый параметр, чтобы он имел тип данных VARCHAR(20):
SET TERM !! ; ALTER PROCEDURE GET_EMP_PROJ (EMP_NO SMALLINT) RETURNS (PROJ_ID VARCHAR(20)) AS BEGIN FOR SELECT PROJ_ID FROM EMPLOYEE_PROJECT WHERE EMP_NO = :emp_no INTO :proj_id DO SUSPEND; END !! SET TERM ; !!