Шифрование и секретность в Linux
PL/pgSQLПоддержка PL/pgSQL
Включение поддержки PL/pgSQL при помощи psql
Листинг 11 1 Создание обработчика вызовов PL/pgSQL
Листинг 11 2 Включение поддержки
Включение поддержки PL/pgSQL приложением createlang
Листинг 11 3 Использование приложения
Листинг 11 4 Передача имени суперпользователя
Структура языка
Блоки
Листинг 11 5 Структура программного блока PL/pgSQL
Комментарии
Синтаксис комментариев
Листинг 11 6 Однострочный комментарий
Листинг 11 7 Блочный комментарий
Хороший стиль комментирования
Команды и выражения
Команды
Выражения
Листинг 11 8 Использование выражений
Листинг 11 9 Результат вызова функции a_function()
Листинг 11 10 Правильное использование временных меток
Переменные
Типы данных
Объявление
Листинг 11 11 Объявление переменной PL/pgSQL
Листинг 11 12 Объявление переменных
Листинг 11 13 Объявления переменных
Присваивание
Листинг 11 14 Инициализация переменной
Листинг 11 15 Использование команды SELECT INTO
Листинг 11 16 Вызов функции get_customer_id()
Листинг 11 17 Использование команды
Листинг 11 18 Вызов функции get_customer_name()
Листинг 11 19 Использование логической
Листинг 11 20 Вызов нового варианта
Аргументы
Листинг 11 21 Примеры вызовов функций
Листинг 11 22 Непосредственное
Листинг 11 23 Синтаксис использования ключевого слова ALIAS
Листинг 11 24 Псевдонимы PL/pgSQL
Листинг 11 25 Результат вызова функции triple_price()
Возвращение переменных
Листинг 11 26 Синтаксис команды RETURN
Атрибуты
Атрибут %TYPE
Листинг 11 27 Объявление переменной с атрибутом %TYPE
Листинг 11 28 Использование атрибута %TYPE
Листинг 11 29 Результат вызова функции get_author()
Атрибут %ROWTYPE
Листинг 11 30 Использование атрибута %ROWTYPE
Листинг 11 31 Вызов новой версии функции get_author()
Конкатенация
Листинг 11 32 Возвращение результата конкатенации
Листинг 11 33 Присваивание строковой
Передача управления
Условные команды
Команда IF/THEN
Листинг 11 34 Синтаксис команды IF/THEN
Листинг 11 35 Использование команды IF/THEN
Листинг 11 36 Результаты вызова функции stock_amount()
Команда IF/THEN/ELSE
Листинг 11 37 Синтаксис команды IF/THEN/ELSE
Листинг 11 38 Команда IF/THEN/ELSE
Листинг 11 39 Результат вызова функции in_stock()
Команда IF/THEN/ELSE/IF
Листинг 11 40 Команда IF/THEN/ELSE/IF
Листинг 11 41 Результаты вызова функции books_by_subject()
Циклы
Безусловный цикл
Листинг 11 42 Использование безусловного цикла
Листинг 11 43 Результат вызова функции square_integer_loop()
Цикл WHILE
Листинг 11 44 Использование цикла WHILE
Цикл FOR
Листинг 11 45 Пример использования цикла FOR
Листинг 11 46 Использование цикла FOR с атрибутом %ROWTYPE
Листинг 11 47 Результат выполнения функции extract_title()
Обработка ошибок и исключений
Таблица 11 1 Допустимые значения уровня ошибки
Листинг 11 48 Команда RAISE
Листинг 11 49 Результаты вызова raise_test()
Вызов функций
Листинг 11 50 Использование ключевого слова PERFORM
PL/pgSQL и триггеры
Листинг 11 51 Определение триггерной функции
Таблица 11 2 Специальные переменные в триггерных функциях
Листинг 11 52 Триггерная функция check_shipment_addition()
Листинг 11 53 Триггер check_shipment
Содержание раздела