Почему мы используем разные языки в функции postgresql - PullRequest
0 голосов
/ 27 сентября 2018

Создать функцию Abc () Возвращает setof как $$ language 'sql' или language 'plpgsql'

1 Ответ

0 голосов
/ 28 сентября 2018

PostgreSQL поддерживает больше языков долгое время - изначально существовали функции на языке SQL.Этот язык отлично подходит для простых задач, может использоваться в качестве макроса - некоторые простые случаи являются встроенными (и тогда издержки на перенос кода в функцию равны нулю).И кто-нибудь знает SQL.

PLpgSQL основан на PL / SQL Oracle - это замечательные процедурные языки со встроенным SQL.Многие знают PL / SQL и могут быстро работать с PL / pgSQL.

PLPerl, PLPerlu, PLPython - эти языки являются языками для внешних процедур.Эти языки являются общими - не оптимизированы для использования внутри баз данных, но могут выполнять очень много других задач или могут использовать довольно широкий набор библиотек (хотя это использование может быть немного опасным) - «u» в конце означает «ненадежный».

Чаще всего разработчики PostgreSQL используют SQL для однострочных функций (это как макроязыки) и PLpgSQL для манипулирования данными.Языки для внешних процедур используются исключительно - я люблю использовать Python для разбора XML, например.

...