Команды

Команда выполняет некоторое действие в коде PL/pgSQL - например, присваивает значение переменной или выполняет запрос. Последовательность команд в программных блоках PL/pg­SQL определяет порядок выполнения действий в этом блоке. Большая часть команд обычно размещается в основной части блока, находящейся между ключевыми словами BEGIN и END. Некоторые команды также могут присутствовать в секции объявлений (после ключевого слова DECLARE), но они всего лишь объявляют и/или инициализируют переменные, используемые в программном блоке.

Каждая команда завершается символом точки с запятой (;). В этом прослеживается сходство с языком SQL, в котором команды завершаются этим же символом. Почти вся оставшаяся часть этой главы посвящена типам команд, их использованию и основным задачам, решаемым при помощи команд в PL/pgSQL.

Выражения

Выражения представляют собой условную запись последовательности операций, результат которой принадлежит одному из базовых типов данных PostgreSQL. В листинге 6.4 приведена простая функция PL/pgSQL, возвращающая результат простого выражения, а в листинге 6.5 продемонстрирован результат вызова этой функции в psql.

Листинг 6.4. Использование выражений

CREATE OR REPLACE FUNCTION books.a_function() RETURNS int4 AS '

DECLARE

an_integer int4;

BEGIN

an_integer:= 10 * 10;

return an_integer;

END;

' LANGUAGE ‘plpgsql’ VOLATILE

Листинг 6.5. Результат вызова функции a_function()

SELECT books.a_function();

Ответ: 100.

Переменные

Переменные используются в программах PL/pgSQL для хранения изменяемых данных заранее определенного типа.

Типы данных

Переменные PL/pgSQL могут относиться к любому из стандартных типов данных SQL (например, integer или char). Помимо типов данных SQL, в PL/pgSQL также предусмотрен дополнительный тип RECORD, предназначенный для хранения записей без указания полей - эта информация передается при сохранении данных в переменной. Дополнительная информация о типе данных RECORD приводится ниже. Типы данных SQL были описаны в разделе 3.1.5. Самые распространенные типы PL/pgSQL: Boolean, text, char, integer, double precision, date, time.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: