9.3 9.4 9.5 9.6 10 11 12 13 14 15 Current(16) 17
问题报告 纠错本页面
38.4. 用户定义的过程
上一页 上一级 第 38 章 扩展 SQL起始页 下一页

38.4. 用户定义的过程 #

过程是一个类似于函数的数据库对象。 关键差异是:

  • 过程是由 CREATE PROCEDURE 命令定义,而不是 CREATE FUNCTION

  • 过程不返回函数值;因此CREATE PROCEDURE 缺少 RETURNS 子句。 然而,过程可以通过输出参数返回数据到它们的调用器。

  • 当函数可以作为查询或DML命令的一部分调用时,过程用CALL命令孤立的调用。

  • 在执行期间过程可以提交或回滚事务(而后自动开始一个新事物),只要调用CALL命令不是显式事务块的一部分。函数做不了这个。

  • 某些函数属性,例如严格性,没有应用于过程。 这些属性控制如何在查询中使用函数,与过程不相关。

后面章节中关于如何定义用户定义的函数的解释同样适用于过程,除了上面指出的那些点。

函数和过程一起构成了例程。 有ALTER ROUTINEDROP ROUTINE这样的命令可以操作函数和过程而不需要知道它们是哪一种。 不过,要注意没有CREATE ROUTINE命令。


上一页 上一级 下一页
38.3. 用户定义的函数 起始页 38.5. 查询语言(SQL)函数

AltStyle によって変換されたページ (->オリジナル) /