问题报告 纠错本页面

章 39. 过程语言

PostgreSQL允许用户定义的函数使用SQL和C之外的语言编写。 通常这些额外的语言叫过程语言(PLs)。 如果用一种过程语言书写了一个函数, 那么数据库服务器没有任何内建的办法解析该函数的源文本。 实际上这些任务都传递给一个知道如何处理这些细节的处理器处理。 这个处理器既可以自己做所有的分析,语法分析,执行等工作, 也可以充当PostgreSQL和一种现有的编程语言实现之间的"胶水"。 处理器本身是一个 C 语言函数,它被编译成共享对象并且在需要的时候加载, 就像其它 C 函数一样。

目前在标准的PostgreSQL发布里有四种过程语言可用: PL/pgSQL (第 40 章), PL/Tcl (第 41 章), PL/Perl (第 42 章)和 PL/Python (第 43 章)。 还有几种额外的过程语言没有包含在核心发布里。附录 H里面有如何找到它们的信息。 用户可以定义其它语言。开发一种新的过程语言的基本信息在第 51 章里介绍。