十一月 6, 2023
本节逐步向您展示如何使用 PL/pgSQL 开发 PostgreSQL 用户定义函数和存储过程。
PL/pgSQL 过程语言添加了许多过程元素,例如控制结构、循环和复杂计算,以扩展标准 SQL。它允许您在 PostgreSQL 中开发使用普通 SQL 可能无法实现的复杂函数和存储过程。
PL/pgSQL 过程语言类似于 Oracle PL/SQL。以下是学习 PL/pgSQL 的理由:
- PL/pgSQL 易学易用。
- PL/pgSQL 默认随 PostgreSQL 一起提供。在 PL/pgSQL 中开发的用户定义函数和存储过程可以像任何内置函数和存储过程一样使用。
- PL/pgSQL 继承所有用户定义的类型、函数和运算符。
- PL/pgSQL 具有许多功能,允许您开发复杂的函数和存储过程。
- PL/pgSQL 可以被定义为受 PostgreSQL 数据库服务器信任。
让我们开始使用 PL/pgSQL 进行编程。
第 1 节. 入门
- PostgreSQL PL/pgSQL 简介 – 向您介绍 PostgreSQL PL/pgSQL 并解释它们的优点和缺点。
- 美元符号引用的字符串常量 – 了解如何使用美元符号引用的字符串常量语法。
- 块结构 – 向您介绍 PL/pgSQL 块结构并向您展示如何开发和执行匿名块。
第 2 节. 变量和常量
- 变量 – 向您展示如何在 PL/pgSQL 中声明变量。
- Select into – 指导您如何使用
select into
查询数据并将其分配给变量。 - 行类型变量 – 了解如何使用行变量来存储结果集的完整行。
- 记录类型变量 – 展示如何声明记录变量来保存结果集的单行。
- 常量 - 指导您如何使用常量使代码更具可读性且更易于维护。
第 3 节. 报告消息和错误
第 4 节 控制结构
- If 语句 – 向您介绍该
if
语句的三种形式。 - 案例陈述 - 解释
case
陈述,包括简单陈述和搜索case
陈述。 - 循环语句 – 向您展示如何使用循环语句根据条件重复执行代码块。
- While 循环 – 学习如何使用
while
循环语句创建预测试循环。 - For 循环 – 展示如何使用
for
循环语句迭代结果集的行。 - Exit – 指导您使用
exit
语句来终止循环。 - continue – 为您提供一种使用
continue
语句跳过当前循环迭代并开始新循环的方法。
第 5 节. 用户定义函数
- 创建函数 – 向您展示如何使用
create function
语句开发用户定义的函数。 - 功能参数模式 – 向您介绍各种参数模式,包括
IN
、OUT
、 和INOUT
。 - 函数重载 - 向您介绍函数重载。
- 返回表的函数 – 向您展示如何开发返回表的函数。
- 删除函数 – 了解如何删除现有函数。
第 6 节. 异常处理
- 处理异常 - 向您展示如何使用异常子句来捕获和处理异常。
第 7 节. 存储过程
第 8 节. 光标
- 游标 – 向您展示如何使用游标逐行处理结果集。
第 9 节. 触发函数
- 使用 PL/pgSQL 触发器过程 – 应用 PL/pgSQL 定义触发器过程。
第 10 节. 调试
- 使用 DBeaver 调试 PL/pgSQL 存储过程 – 向您展示如何使用 DBeaver 调试器,在 PostgreSQL 中调试 PL/pgSQL 存储过程。
- 使用 pgAdmin 4 调试 PL/pgSQL 函数 – 向您展示如何使用 pgAdmin 调试器,在 PostgreSQL 中调试 PL/pgSQL 函数。