首页 > 数据库 > PostgreSQL > 正文

PostgreSQL7.0手册-用户手册-10. PL/pgSQL - SQL 过程语言

2019-09-08 23:33:10
字体:
来源:转载
供稿:网友
第十章. PL/pgSQL - SQL 过程语言

概述 
描述 
例子 


PL/pgSQL 是 Postgres 数据库系统的一个可装载的过程语言. 
这个包最初是 Jan Wieck 写的. 
概述
PL/pgSQL 的设计目标是创建一种可装载的过程语言,可以 
可用于创建函数和触发器过程, 
为 SQL 语言增加控制结构, 

可以执行复杂的计算, 

继承所有用户定义类型,函数和操作符, 

可以定义为被服务器信任(的语言), 

容易使用.

PL/pgSQL 函数第一次被后端调用时,PL/pgSQL 的调用控制器分析函数源文本生成二进制指令树.所生成的字节码在调用控制器里是用函数的对象标识来标记的.这样就保证如果使用 DROP/CREATE 序列修改了函数,不需要建立一个新的数据库联接就能令修改生效. 
对于函数里用到的所有表达式和 SQL 语句,PL/pgSQL 字节码解析器使用 SPI 管理器 SPI_prepare() 和 SPI_saveplan() 函数创建一个准备好了的执行规划.这些动作是在(解析器)第一次处理时完成的,独立的语句是在 PL/pgSQL 函数里面处理的.因此,一个带有条件代码的有许多语句的需要执行规划的函数,将只准备和保存那些在整个数据库联接周期内真正使用到的规划. 

除了用于用户定义类型的输入/输出转换和计算函数以外,任何可以在 C 语言函数里定义的东西都可以在 PL/pgSQL 里使用.我们可以创建复杂的条件计算函数,并随后将之用于定义操作符或者用于函数索引中.


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

描述
PL/pgSQL 的结构
PL/pgSQL 语言是大小写不敏感的语言.所有关键字和标识都可以混合大小写使用. 
PL/pgSQL 是一种面向块的语言.一个块象下面这样定义 

[<
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选