# 38.4.用户定义的过程

过程是类似于函数的数据库对象。关键区别在于:

  • 程序是用创建过程命令,不是创建函数.

  • 程序不返回函数值;因此创建过程缺少返回条款然而,过程可以通过输出参数将数据返回给调用者。

  • 当函数作为查询或DML命令的一部分调用时,使用呼叫命令

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

  • 某些函数属性,例如严格性,不适用于过程。这些属性控制函数在查询中的使用方式,这与过程无关。

    以下各节中关于如何定义用户定义函数的解释也适用于过程,但上述各点除外。

    功能和程序统称为日常工作.有如下命令改变常规放弃例行程序它可以对函数和过程进行操作,而无需知道它是哪种类型。但是,请注意,没有创建例行程序命令