PL / pgSQL ( Procedural Language / PostgreSQL ) - это процедурный язык программирования, поддерживаемый ORDBMS PostgreSQL . Он очень похож на язык PL / SQL Oracle . Реализованный Яном Виком, PL / pgSQL впервые появился в PostgreSQL 6.4, выпущенном 30 октября 1998 года. [1] Версия 9 также реализует некоторые функции ISO SQL / PSM , такие как перегрузка вызываемых SQL функций и процедур. [2]
Разработано | Ян Вик |
---|---|
Разработчик | Группа глобального развития PostgreSQL |
Впервые появился | 30 октября 1998 г . |
Веб-сайт | www |
Под влиянием | |
PL / SQL , Ада |
PL / pgSQL, как полнофункциональный язык программирования, обеспечивает гораздо больший процедурный контроль, чем SQL , включая возможность использования циклов и других структур управления. Операторы и триггеры SQL могут вызывать функции, созданные на языке PL / pgSQL.
Дизайн PL / pgSQL был направлен на то, чтобы позволить пользователям PostgreSQL выполнять более сложные операции и вычисления, чем SQL, при этом обеспечивая простоту использования. Язык может быть определен сервером как доверенный. [3]
PL / pgSQL - один из языков программирования, включенных в стандартный дистрибутив PostgreSQL [4], остальные - это PL / Tcl , PL / Perl [5] и PL / Python. [6] Кроме того, многие другие доступны от третьих лиц, включая PL / Java, [7] PL / pgPSM, [8] PL / php, [9] PL / R, [10] PL / Ruby, [11] PL. / sh , PL / Lua и PL / v8 . PostgreSQL использует Bison в качестве парсера [12], что упрощает перенос многих языков с открытым исходным кодом , а также повторное использование кода .
Сравнение с PSM
Язык SQL / PSM определен стандартом ISO, но также основан на Oracle PL / SQL и PL / pgPL / SQL, поэтому между ними мало различий. Дополнительный модуль PL / pgPSM реализует стандарт. Основные особенности PSM, которые отличаются от PL / pgSQL: [8] [13]
- Обработчики исключений - это подпрограммы (обработчики продолжения);
- Предупреждения можно обрабатывать как исключение;
- Объявление переменных должно основываться на результате SQL-запроса.
Все три языка (Oracle PL / SQL, [14] PostgreSQL PL / pgSQL и ISO SQL / PSM [15] ) изначально произошли от языка программирования Ada .
Встроенная документация внешняя поддержка
Формальный псевдоязык для документации, может быть встроен в сценарии SQL и PL / pgSQL и будет обрабатываться (извлечение данных из документации и создание гипертекста документации) внешним инструментом, генератором документации . Некоторые из этих инструментов поддерживают PL / SQL, поэтому ожидается, что они будут поддерживать также PL / pgSQL, в полной или частичной поддержке.
Инструмент | Полный PL / pgSQL | Стиль Javadoc | Другой стиль | Проекты PL / pgSQL, использующие его |
---|---|---|---|---|
Документ! Икс | ? | да | да | ? |
Естественные документы | ? | Нет | да | ? |
ROBODoc | ? | да | Нет | ? |
Другие инструменты документации: Doxygen , DBScribe, HyperSQL, Universal Report.
Рекомендации
- ^ «Документация PostgreSQL, приложение E: примечания к выпуску, выпуск 6.4» . Группа глобального развития PostgreSQL.
- ^ "функция T322" , стандартные функции SQL (9 изд.), PostgreSQL.
- ^ «PL / pgSQL - процедурный язык SQL» . PostgreSQL . Проверено 15 ноября 2007 .
- ^ «Процедурные языки» .
- ^ "PL / Perl" , Документы (текущая ред.), PostgreSQL.
- ^ "PL / Python" , Документы (текущая ред.), PostgreSQL.
- ^ "PL / Java" , Gborg (проект), PostgreSQL.
- ^ а б SQL / PSM (руководство), PostgreSQL.
- ^ «PL / PHP» , Сообщество , Командная строка.
- ^ Conway, Джо, PL / R , архивируются с оригинала на 2014-06-19 , извлекаться 2005-02-25.
- ^ PL / Ruby (проект), Ruby lang, 23.11.2018.
- ^ "Этап парсера" , Документы (9-е изд.), PostgreSQL
- ^ Стехуле, П., "Предложение: PL / pgPSM для pg9.3" , Хакеры (список рассылки), PostgreSQL.
- ^ «Ограничения программы C. PL / SQL» , Справочник по языку PL / SQL , Электронная документация по базам данных (11g Release 1 (11.1) ed.), Oracle, p. 87,
PL / SQL основан на языке программирования Ada.
- ^ «1», Хранимые процедуры ( ODP ) , O'Reilly.
Внешние ссылки
- Официальная документация PL / pgSQL
- PL / pgSQL (ru) , руководство и примеры