Переменные
Ключевое слово 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':