ВУЗ:
Составители:
Рубрика:
– 126 –
Если требуется присвоить несколько значений нескольким переменным, в
команду включаются две группы, разделенные запятыми и отделенные друг от
друга пробелом. В первой группе перечисляются имена переменных, а во вто-
рой
имена полей.
Функция, приведенная в листинге 6.11, решает обратную задачу по сравне-
нию с функцией
get_customer_id() из листинга 6.9 она возвращает имя и фа-
милию клиента по заданному коду.
Листинг 6.11. Использование команды SELECT INTO с несколькими полями
CREATEFUNCTIONget_customer_name(integer)RETURNStextAS'
DECLARE
‐‐Объявлениепсевдонимовдляаргументов,
customer_idALIASFOR$1;
‐‐Объявлениепеременныхдляхранениякомпонентов
‐‐полногоимениклиента.
customer_fnametext;
customer_lnametext;
BEGIN
‐‐Получениеимениифамилииклиента,кодкоторого
‐‐совпадаетспереданнымзначением.
SELECTINTOcustomer_fname,customer_lname
first_name,last_name
FROMcustomersWHEREid=customer_id;
‐‐Вернутьполноеимя.
RETURNcustomer_fname|''''|customer_lname;
END;
'LANGUAGE'plpgsql1;
В листинге 6.12 показан результат вызова функции get_customer_name() с
аргументом
107.
Листинг 6.12. Вызов функции get_customer_name()
booktown=#SELECTget_customer_name(107);
get_customer_name
AnnieJackson
(1row)
Чтобы узнать, успешно ли были присвоены значения переменным коман-
дой
SELECT INTO, воспользуйтесь специальной логической переменной FOUND.
Кроме того, можно проверить значение заданной переменной ключевыми сло-
вами
ISNULL или IS NULL (в большинстве случаев положительный результат оз-
начает, что команда
SELECT INTO завершилась неудачно!).
Ключевые слова
FOUND, IS NULL и ISNULL следует использовать в условных
командах (
IF/THEN). Условные команды PL/pgSQL описаны в разделе 6.1.7.
В листинге 6.13 приведен простейший пример использования логической
переменной
FOUND в функции get_customer_id().
Листинг 6.13. Использование логической переменной FOUND в функции
get_customer_id()
[...]
SELECTINTOcustomer_ididFROMcustomers
Страницы
- « первая
- ‹ предыдущая
- …
- 124
- 125
- 126
- 127
- 128
- …
- следующая ›
- последняя »
