Шифрование и секретность в Linux


Использование команды IF/THEN



Листинг 11.35. Использование команды IF/THEN

CREATE FUNCTION stock_amount (integer, integer) RETURNS integer AS '

DECLARE

-- Объявление псевдонимов для аргументов функции.

b_id ALIAS FOR $1: b_edition ALIAS FOR $2:

-- Объявление переменной для кода ISBN.

b_1sbn text:

- Объявление переменной для количества экземпляров.

stock_amount integer: .

BEGIN

- Команда SELECT INTO находит в таблице editions запись.

-- у которой код книги и номер издания совпадают с аргументами

-- функции. Код ISBN из найденной записи присваивается переменной.



SELECT INTO bjsbn isbn FROM editions WHERE

book_id = b_id AND edition = b_edition;

- Проверить, не был ли полученный код ISBN равен NULL.

-- Значение NULL говорит о том. что в базе данных

-- не существует записи книги с кодом и номером издания.

-- переданными в аргументах функции. Если запись не существует.

-- функция возвращает -1 и завершает работу.

IF bjsbn IS NULL THEN

RETURN -1:

END IF:

-- Получить из таблицы stock количество экземпляров книги

- на складе и присвоить его переменной stock_amount.

SELECT INTO stock_amount stock FROM stock WHERE isbn = bjsbn:

-- Вернуть количество экземпляров на складе. RETURN stock_amount;

END:

' LANGUAGE 'plpgsql':

В листинге 11.36 показан результат вызова функции stock_amount() для кода книги 7808 и издания 1.



Содержание раздела