8.9.6 函数和过程

2025-06-05 20:32:19 更新

SQL-99允许定义函数、过程和方法。定义可以通过SQL-99的有关过程的组件,也可以通过外部的程序设计语言,例如Java、C或C++。我们首先看一个SQL-99中的定义,然后了解

如何使用外部语言中的定义。有些数据库系统支持它们自己的过程语言,例如Oracle中的PL/SQL和Microsoft SQLServer中的TransactSQL.它们类似于SQL-99的有关过程的部分,但在语法和语义上有所区别,详细信息可参见各自的系统手册。

1.SQL函数和过程

SQL-99允许多个过程同名,只要同名的不同过程的参数个数不同。名称和参数个数用于标识一个过程。SQL-99也允许多个函数同名,只要这些同名的不同函数的参数个数不同,或者,对于那些有相同个数参数的函数,至少有一个参数的类型不同。

2.外部语言程序

SQL-99允许使用一种程序设计语言(如C或C++)定义函数。这种方式定义的函数会比SQL中定义的函数效率更高,无法在SQL中执行的计算可以由这些函数执行。

3.过程的构造

SQL-99支持多种过程的构造,这赋予它与通用程序设计语言相当的几乎所有的功能。

SQL-99标准中处理这些构造的部分称为持久存储模块(persistent stroage module, PSM)-

1)while语句和repeat语句

2)for语句

foi循环,允许对查询的所有结果迭代:

2)if-then-else 语句与 case 语句