Иллюстрированный самоучитель по PostgreSQL

Переменные

Ключевое слово DEFAULT определяет значение по умолчанию для переменной. Вместо него можно воспользоваться оператором :=, эффект будет тем же.

Ниже приведен расширенный синтаксис объявления переменной:

имя_переменной [ CONSTANT ] тип_данных [ NOT NULL ]
[ { DEFAULT |: – } значение ]:

В листинге 11.13 приведены примеры объявлений целочисленной константы, равной 5, переменной со значением 10, которой не может быть присвоено псевдозначение NULL, и символьной переменной, содержащей символ "а".

Листинг 11.13. Объявления переменных.

CREATE FUNCTION example_function О RETURNS texi AS '
DECLARE
--Объявление целочисленной константы.
--инициализированной значением 5.
five CONSTANT integer: = 5:
--Объявление целочисленной переменной.
--инициализированной значением 10.
--Переменной не может присваиваться NULL,
ten integer NOT NULL: = 10;
--Объявление символьной переменной.
--инициализированной значением "а",
letter char DEFAULT ' 'а";
BEGIN
--Функция возвращает символ и прекращает работу,
return letter;
END;
' LANGUAGE 'plpgsql':

Внимание
Ключевое слово RENAME, упоминаемое в электронной документации PL/pgSQL и предназначенное для переименования существующих переменных, не работает в PostgreSQL 7.1.x. Использование этого ключевого слова с существующей переменной приводит к ошибке лексического анализатора. По этой причине ключевое слово RENAME не упоминается в этой главе
.

Присваивание

Присваивание в PL/pgSQL выполняется оператором присваивания (:=) в форме:

левая_переменная: = правая_переменная

Команда присваивает левой переменной значение правой переменной. Также допускается запись вида:

левая_переменная: = выражение

В этом случае левой переменной присваивается результат выражения, расположенного справа от оператора присваивания.

Значения по умолчанию также могут присваиваться переменным в секции объявлений программных блоков PL/pgSQL. Инициализация переменной производится оператором присваивания (:=) в одной строке с объявлением переменной. Эта тема подробно рассматривается ниже, а в листинге 11.14 приведен небольшой пример.

Листинг 11.14. Инициализация переменной.

CREATE FUNCTION идентификатор (аргументы) RETURNS тип AS '
DECLARE
anjnteger int4: = 10:
BEGIN
команда: С…]
END;
' LANGUAGE 'plpgsql':
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.