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

UptoLike

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

132
Листинг 6.26. Возвращение результата конкатенации
CREATEFUNCTIONcompound_word(text,text)RETURNStextAS'
DECLARE
‐‐Объявлениепсевдонимовдляаргументовфункций.
word1ALIASFOR$1;
word2ALIASFOR$2;
BEGIN
‐‐Вернутьобъединениедвухслов.
RETURNword1||word2;
END;
'LANGUAGE'plpgsql';
Если передать функции аргументы «break» и «fast», функция вернет объе-
диненную строку
«breakfast»:
booktown=#SELECTcompound_word('break','fast');
compound_word
breakfast
(1row)
6.1.7. ПЕРЕДАЧА УПРАВЛЕНИЯ
Команды передачи управления существуют практически во всех современ-
ных языках программирования, и
PL/pgSQL не является исключением. С техни-
ческой точки зрения сам вызов функции можно рассматривать как передачу
управления последовательности команд
PL/pgSQL. Тем не менее существуют и
другие, более совершенные средства, определяющие последовательность вы-
полнения команд
PL/pgSQL. Речь идет об условных командах IF/THEN и циклах.
Условные команды
Условная команда указывает на то, что некоторое действие (или последо-
вательность действий) выполняется в зависимости от результатов проверки за-
данного логического условия. Определение выглядит запутанно, но на самом
деле условные команды весьма просты. В неформальной формулировке услов-
ная команда означает следующее:
«если условие истинно, выполнить такое‐то
действие».
Команда IF/THEN
В соответствии с данным определением команда
IF/THEN задает команду
(или блок команд), выполняемых в случае истинности некоторого условия.
Синтаксис команды
IF/THEN показан в листинге 6.27.
Листинг 6.27. Синтаксис команды IF/THEN
CREATEFUNCTIONфункция(аргументы)RETURNSтипAS'
DECLARE
объявления
BEGIN
IFусловиеTHEN
команда;
[...]
ENDIF;
END;
'LANGUAGE'plpgsql';