CREATE FUNCTION extract_title (integer) RETURNS text AS '
DECLARE
-- Объявление псевдонима для аргумента функции,
subjd ALIAS FOR $1:
-- Объявление переменной для хранения названий книг.
-- Переменная инициализируется символом новой строки,
text output text : = ''\n'';
-- Обьявление переменной для хранения записей
-- таблицы books, row data booksXROWTYPE:
BEGIN
-- Перебор результатов запроса.
FOR rowjata IN SELECT * FROM books
WHERE subjectjd = subjd ORDER BY title LOOP
-- Присоединить название книги к переменной text_output.
text_output := text_output || row_data.title || "\n";
END LOOP:
-- Вернуть список книг.
RETURN text_output:
END:
' LANGUAGE 'plpgsql':
В листинге 11.47 показан результат вызова функции extract_title() с аргументом 2. В таблице subjects этот код соответствует теме «Children's Books» (книги для детей).