ПЛ/pgSQL
![]() | |
Разработано | Ян Вик |
---|---|
Разработчик | Группа глобального развития PostgreSQL |
Впервые появился | 30 октября 1998 г |
Веб-сайт | www |
Под влиянием | |
PL/SQL , Ада |
PL/pgSQL ( Процедурный язык/PostgreSQL ) — процедурный язык программирования, поддерживаемый PostgreSQL ОРСУБД . Он очень похож на Oracle язык PL/SQL . PL/pgSQL, реализованный Яном Виком, впервые появился в PostgreSQL 6.4, выпущенном 30 октября 1998 года. [1] Версия 9 также реализует некоторые функции ISO SQL/PSM , такие как перегрузка функций и процедур, вызываемых SQL. [2]
PL/pgSQL, как полнофункциональный язык программирования, обеспечивает гораздо больший процедурный контроль, чем SQL , включая возможность использования циклов и других структур управления. Операторы и триггеры SQL могут вызывать функции, созданные на языке PL/pgSQL.
Дизайн PL/pgSQL был направлен на то, чтобы позволить пользователям PostgreSQL выполнять более сложные операции и вычисления, чем SQL, обеспечивая при этом простоту использования. Язык может быть определен сервером как доверенный. [3]
PL/pgSQL — один из языков программирования, включенный в стандартный дистрибутив PostgreSQL. [4] остальные — PL/Tcl , PL/Perl [5] и PL/Питон. [6] Кроме того, многие другие доступны от третьих сторон, включая PL/Java, [7] ПЛ/пгПСМ, [8] ПЛ/php, [9] ПЛ/Р, [10] ПЛ/Рубин, [11] ПЛ/ш , PL/Lua , Постмодерн [12] (на основе Common Lisp ) и PL/v8 . PostgreSQL использует Bison в качестве парсера. [13] упрощая портирование многих языков с открытым исходным кодом , а также повторное использование кода .
Сравнивая с ПСМ
[ редактировать ]Язык SQL/PSM определяется стандартом ISO, но также основан на языках Oracle PL/SQL и PL/pgPL/SQL, поэтому различий мало. Модуль PL/pgPSM реализует стандарт. Основные особенности PSM, отличающиеся от PL/pgSQL: [8] [14]
- Обработчики исключений — это подпрограммы (обработчики продолжения);
- Предупреждения можно обрабатывать как исключения;
- Объявление переменных должно основываться на результате запроса SQL.
Все три языка (Oracle PL/SQL, [15] PostgreSQL PL/pgSQL и ISO SQL/PSM [16] ) изначально произошли от языка программирования Ada .
Пример
[ редактировать ]CREATE FUNCTION sales_tax(subtotal real) RETURNS real AS $$
BEGIN
RETURN subtotal * 0.06;
END;
$$ LANGUAGE plpgsql;
Внешняя поддержка встроенной документации
[ редактировать ]Формальный псевдоязык документации может быть встроен в сценарии SQL и PL/pgSQL. Затем эта документация обрабатывается генератором документации — внешним инструментом, который извлекает данные и генерирует гипертекст. Поскольку PL/SQL: поддерживает некоторые из этих инструментов, ожидается, что PL/pgSQL также обеспечит полную или частичную поддержку.
Инструмент | Полный PL/pgSQL | Javadoc Стиль | Другой стиль | PL/pgSQL-проекты, использующие его |
---|---|---|---|---|
Документ! Х | ? | Да | Да | ? |
Природные документы | ? | Нет | Да | ? |
РОБОДок | ? | Да | Нет | ? |
Другие инструменты документирования: Doxygen , DBScribe, HyperSQL, Universal Report.
Ссылки
[ редактировать ]- ^ «Документация PostgreSQL, Приложение E: Примечания к выпуску, выпуск 6.4» . Группа глобального развития PostgreSQL. Январь 2012.
- ^ «функция T322» , Стандартные функции SQL (9-е изд.), PostgreSQL .
- ^ «PL/pgSQL – процедурный язык SQL» . ПостгреСБЛ . Проверено 15 ноября 2007 г.
- ^ «Процедурные языки» . 9 мая 2024 г.
- ^ «PL/Perl» , Документация (текущая редакция), PostgreSQL .
- ^ «PL/Python» , Документация (текущая редакция), PostgreSQL .
- ^ «PL/Java» , Gborg (проект), PostgreSQL .
- ^ Перейти обратно: а б SQL/PSM (руководство), PostgreSQL, 20 мая 2008 г.
- ^ «PL/PHP» , Сообщество , Командная строка .
- ^ Конвей, Джо, PL/R , заархивировано из оригинала 19 июня 2014 г. , получено 25 февраля 2005 г.
- ^ PL/Ruby (проект), язык Ruby, 23 ноября 2018 г.
- ^ Хавербеке, Марин (27 мая 2024 г.), marijnh/Postmodern , получено 1 июня 2024 г.
- ^ «Этап парсера» , Документация (9-е изд.), PostgreSQL
- ^ Стехуле, П., «Предложение: PL/pgPSM для pg9.3» , Хакеры (список рассылки), PostgreSQL .
- ^ «C. Ограничения программы PL/SQL» , Справочник по языку PL/SQL , Интернет-документация по базам данных (изд. 11g Release 1 (11.1)), Oracle, стр. 87,
PL/SQL основан на языке программирования Ada.
- ^ «1», Хранимые процедуры ( ODP ) , О’Рейли .
Внешние ссылки
[ редактировать ]- Официальная документация PL/pgSQL
- PL/pgSQL (en) , руководство и примеры