Firebird数据库
Firebird 2.5语言参考--存储过程
2020-03-02 15:41:13

      存储过程是存储在数据库元数据中的程序,用于在服务器上执行。一个存储过程可以由存储过程(包括自身)、触发器和客户端应用程序调用。调用自身的过程被称为递归。

 


存储过程有以下优点:

1. 模块化——多个应用程序可以调用数据库中的同一个存储过程,从而减少了应用程序代码的大小和避免代码重复。

2. 更简单的应用程序支持——当一个存储过程被修改时,更改会立即对所有宿主应用程序生效,如果参数不变,则不需要重新编译它们。

3.增强的性能——因为存储过程是在服务器上执行的而不是在客户端,网络流量减少,从而提高了性能。

 

 

Firebird支持两种类型的存储过程:可执行的和可选择的。

 

可执行过程通常修改数据库中的数据。它们可以接收输入参数和返回一个输出(返回)参数的集合。它们是使用EXECUTE PROCEDURE语句调用的。参见到一个可执行存储过程的例子,在第5章的创建过程部分的末尾。

 

可选存储过程通常从数据库检索数据,将任意数量的行返回给调用者。调用者每次从数据库引擎准备的行缓冲区接收一行输出。

 

可选择的储过过程对于获取复杂的数据集非常有用,而这些数据集通常是不可能的或太困难的或者检索太慢使用常规的DSQL SELECT查询。通常,这种类型的存储过程通过一个迭代循环来提取数据,也许在填充输出变量(参数)之前将其转换为循环每次迭代时的新数据。迭代结束时的 SUSPEND 语句填充缓冲区并等待调用方获取该行。循环的下一次迭代的执行在清除缓冲区后开始。

 

可选择的过程可以有输入参数且输出集合由程序头部的RETURNS子句指定。

 

使用 SELECT 语句调用可选存储过程。查看可选存储过程的示例,在第5章的"创建过程(CREATE PROCEDURE)"部分的末尾。

 

本文档中文版由海钛瑞OA办公系统研发团队翻译制作,转载请在开始处标明来自于http://www.hitai.com.欢迎交流。