В модулях на PSQL может быть использовано четыре типа переменных, причем возможность использования конкретной переменной определяется тем, является ли модуль хранимой процедурой или триггером. Различают локальные переменные, контекстные переменные, входные параметры и выходные параметры.
Локальные переменные используются для хранения значений как в ХП, так и в триггерах. Объявление локальной переменной в теле триггера или хранимой процедуры осуществляется с помощью следующего оператора:
DECLARE [VARIABLE] имя_локальной_переменной <тип_переменной> [{ = | DEFAULT} <значение>];,
где
<тип_переменной> :: = {<тип_данных> | имя_домена| TYPE OF имя_домена}.
Следует обратить внимание на то, что для каждой переменной используется свой оператор DECLARE VARIABLE, который заканчивается точкой с запятой.
Правило составления имен локальных переменных такое же, как и для любых других идентификаторов языка SQL (см. п. 2.7).
В качестве типа данных можно указывать один из системных типов (см. п. 2.9), ранее созданный домен или конструкцию TYPE OF <имя_домена>, которая извлекает только тип из существующего домена (т.е. ограничения и значения по умолчанию, определенные для данного домена, не учитываются).
Например, чтобы объявить переменную x целого типа, необходимо использовать следующий оператор:
DECLARE VARIABLE x INTEGER;.
Объявить переменную y на домене BOOLEAN можно следующим образом: DECLARE VARIABLE y BOOLEAN;.
Все локальные переменные должны быть объявлены до первого выполняемого блока триггера (процедуры).
Объявленным переменным в дальнейшем могут присваиваться различные значения с помощью оператора присваивания, имеющего следующий синтаксис:
предыдущаяследующая