Инструменты пользователя

Инструменты сайта


alter_procedure

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следущая версия
Предыдущая версия
alter_procedure [2008/01/11 10:01]
193.110.114.140 создано
alter_procedure [2008/04/30 03:41] (текущий)
Строка 1: Строка 1:
 +====== ALTER PROCEDURE ======
  
 +
 +
 +
 +===== Версии сервера =====
 +^ 0.9 ^ 1.0 ^ 1.5.3 ^ 1.5.4 ^ 1.5.5 ^ 2.0 ^ 2.0.3 ^ 2.0.4 ^ 2.1 ^ 2.5 ^ 3.0 ^
 +|  Да  |  Да  |  Да  |  Да  |  Да  |  Да  |  Да  |  Да  |  Да  |  ?  |  ?  |
 +
 +===== Формат =====
 +Для Firebird версии ниже 2.0
 +<​code>​
 +ALTER PROCEDURE name
 +  [(param <​datatype>​ [, param <​datatype>​ ...])]
 +  [RETURNS (param <​datatype>​ [, param <​datatype>​ ...])]
 +  AS <​procedure_body>​ [terminator]
 +</​code>​
 +
 +Для Firebird версии выше 2.0
 +<​code>​
 +ALTER PROCEDURE name
 +  [(param <​datatype>​ [= <​default_value>​] ​ [, param <​datatype>​ [= <​default_value>​] ...])]
 +  [RETURNS (param <​datatype>​ [, param <​datatype>​ ...])]
 +  AS <​procedure_body>​ [terminator]
 +</​code>​
 +
 +^ Аргумент ^ Описание ^
 +|name |Имя существующей процедуры.|
 +|param <​datatype>​ |Входные параметры,​ используемые процедурой. Допустимые типы данных перечисленны в Типы данных.|
 +|RETURNS param <​datatype>​ |Выходные параметры,​ используемые процедурой. Допустимые типы данных перечислены в Типы данных.|
 +|<​procedure_body>​|Тело процедуры. Включает:​ 1.Объявления локальных переменных. 2 Блок инструкций на языке процедур и триггеров. Смотри CREATE PROCEDURE, для полного описания.|
 +|<​default_value>​ |Значение параметра по умолчанию,​ если он не указан при вызове процедуры. :!: для использования возможности требуется Firebird v2.0 и выше|
 +|terminator |Терминатор,​ определенный для ISQL командой SET TERM, указывающий конец тела процедуры.|
 +
 +===== Описание =====
 +ALTER PROCEDURE изменяет существующую сохраненную процедуру. Эта инструкция может изменять входные параметры,​ выходные параметры и тело процедуры.
 +
 +Заголовок и тело процедуры должны быть включены в инструкцию ALTER PROCEDURE полнонстью. Синтаксис точно такой же, как у инструкции [[CREATE PROCEDURE]] за исключением ключевого слова CREATE, которое заменено на ALTER.
 +
 +Процедуры,​ использующиеся в настоящий момент,​ не могут быть изменены,​ пока не завершится их использование.
 +
 +Изменения созданные инструкцией ALTER PROCEDURE, дают эффект,​ как только они произведены. Изменения распространяются на все приложения,​ которые используют процедуру,​ без необходимости их перекомпиляции и сборки.
 +
 +:!: Будте внимательны при изменении типов и числа входных и выходных параметров процедуры,​ так как существующий код может предполагать,​ что процедура имеет оригинальный формат.
 +
 +Процедура может быть изменена ее создателем или пользователем SYSDBA.
 +
 +===== Пример =====
 +Эта инструкция изменяет процедуру GET_EMP_PROJ,​ изменяя возвращаемый параметр,​ чтобы он имел тип данных VARCHAR(20):​
 +<​code>​
 +SET TERM !! ;
 +
 +ALTER PROCEDURE GET_EMP_PROJ (
 +  EMP_NO SMALLINT
 +)RETURNS(
 +  PROJ_ID VARCHAR(20)
 +)AS
 +BEGIN
 +  FOR 
 +    SELECT PR.PROJ_ID
 +    FROM   ​EMPLOYEE_PROJECT PR
 +    WHERE  PR.EMP_NO = :emp_no
 +    INTO   :​proj_id
 +  DO
 +    SUSPEND;
 +END !!
 +
 +SET TERM ; !!
 +</​code>​
 +
 +===== См. также =====
 +[[CREATE PROCEDURE]], ​ [[DROP PROCEDURE]], ​ [[EXECUTE PROCEDURE]], ​ [[SET TERM]]
 +
 +===== Источник =====
 +langref.pdf
alter_procedure.txt · Последние изменения: 2008/04/30 03:41 (внешнее изменение)