Использование ключевого слова PERFORM
Листинг 11.50. Использование ключевого слова PERFORM
CREATE FUNCTION shipjtem (text.text.text) RETURNS integer AS '
DECLARE
-- Объявление псевдонимов для аргументов функции.
l_name ALIAS FOR $1: f_name ALIAS FOR $2;
bookjsbn ALIAS FOR $3:
-- Объявление переменной для хранения кода книги.
-- Переменная используется для проверки переданного кода ISBN.
book_id Integer:
-- Объявление переменной для хранения кода покупателя.
-- Переменная используется для проверки переданных данных покупателя.
customeMd integer;
BEGIN
-- Получить код покупателя при помощи ранее определенной функции.
SELECT INTO customer_id get_customer_id(l_name.f_name);
-- Если покупатель не найден, функция get_customerjd
-- возвращает -1. В этом случае вернуть -1 и выйти из функции.
IF customerjd = -1 THEN
RETURN -1:
END IF:
-- Получить код книги с заданным кодом ISBN.
SELECT INTO book id book id FROM editions WHERE isbn = book isbn:
-- Если данные книги отсутствуют в базе, вернуть -1.
IF NOT FOUND THEN
RETURN -1;
END IF;
-- Если книга и покупатель существуют.
-- сохранить информацию о поставке в базе.
PERFORM add_shipment(customer_id.bookjsbn);
-- Вернуть 1 - признак успешного выполнения функции.
RETURN 1:
END;
' LANGUAGE 'plpgsql':