Базы данных. Концепция баз данных, реляционная модель данных, языки SQL и XML. Токмаков Г.П. - 131 стр.

UptoLike

Составители: 

131
TYPE только напрасно усложняет очень простую задачу, но по мере изучения
PL/pgSQL важность атрибута %ROWTYPE становится все более очевидной.
Точка
(.) после имени переменной found_author в листинге 6.24 использу-
ется для ссылки на имя поля, входящего в структуру
found_author.
Листинг 6.24. Использование атрибута %ROWTYPE
CREATEFUNCTIONget_author(integer)RETURNStextAS'
DECLARE
‐‐Объявлениепсевдонимадляаргументафункции.
‐‐вкоторомдолженпередаватьсякодавтора,
author_idALIASFOR$1;
‐‐Объявлениепеременной,структуракоторой
‐‐совпадаетсоструктуройтаблицыauthors,
foundauthorauthorsROWTYPE;
BEGIN
‐‐Найтивтаблицеauthorsфамилиюавтора,
‐‐кодкоторогосовпадаетспереданнымаргументом.
SELECTINTOfound_author*FROMauthorsWHEREid=author_id;
‐‐Вернутьимяифамилию,разделенныепробелом.
RETURNfound_author.first_name||""||found_author.last_name;
END;
'LANGUAGE'plpgsql':
Обратите внимание на звездочку (*) в списке полей команды SELECT. По-
скольку переменная
found_author объявлялась с атрибутом %ROWTYPE для табли-
цы
authors, она имеет такую же структуру, как и записи таблицы authors. Та-
ким образом, конструкция
SELECT * заполняет переменную found_author значе-
ниями полей найденной записи. Пример вызова новой версии
get_author()
приведен в листинге 6.25.
Листинг 6.25. Вызов новой версии функции get_author()
booktown=#SELECTget_author(1212);
get_author
JohnWorsley
(1row)
6.1.6. КОНКАТЕНАЦИЯ
Конкатенацией называется процесс построения новой строки посредством
объединения двух (и более) строк. Конкатенация принадлежит к числу стан-
дартных операций
PostgreSQL и поэтому может напрямую использоваться с пе-
ременными в функциях
PL/pgSQL. Это незаменимый инструмент форматирова-
ния при работе с несколькими переменными, содержащими символьные дан-
ные.
Конкатенация используется только со строками. Оператор конкатенации
(|) ставится между объединяемыми компонентами (литералами или строковы-
ми переменными).
В листинге 6.26 операция конкатенации создает строку, возвращаемую
функцией.