创建存储过程
存储过程是可执行代码,可由其他程序调用。 创建一个的过程取决于程序的类型。
准备工作
您必须先完成一些 Db2 环境的配置任务,然后才能使用以下任何一种类型的程序:
- 外部存储过程
- 满足以下任意条件的原生SQL程序:
- 调用至少一个外部存储过程、外部SQL过程或用户定义的函数。
- 定义为允许调试模式或禁止调试模式。
- 外部SQL程序(已弃用)
- Db2-提供的存储过程
有关说明,请参阅安装步骤 21:配置 Db2 以运行存储过程和用户定义函数或迁移步骤 23:配置 Db2 以运行存储过程和用户定义函数(可选)。
过程
要创建存储过程,请完成以下步骤:
按照您要创建的存储过程类型,执行相应步骤,然后发出CREATE PROCEDURE语句,在数据库服务器中注册存储过程。
您可以创建以下类型的存储过程:
- 原生 SQL 程序
- 过程体完全由SQL语句编写,包括SQL过程语言(SQL PL)语句。 过程定义中包含并指定了过程体以及过程的各种属性。 为本地SQL过程生成一个包。 它包含过程主体,包括控制语句。 有时可能还包括由 Db2 生成的语句。 每次调用该过程时,程序包都会执行一次或多次。
所有使用CREATE PROCEDURE语句创建的SQL程序,如果未指定FENCED或EXTERNAL选项,则为原生SQL程序。 原生SQL程序支持更多功能,通常比外部SQL程序运行得更好,而且不会为其生成相关的C程序。
更多信息,请参阅创建本机SQL程序。
- 外部存储过程
- 过程体是一个外部程序,用C、C++、COBOL或Java等编程语言编写,可以包含SQL语句。 外部存储过程的源代码与过程定义分开,并绑定到一个包中。 外部可执行文件的名称与过程的各种属性一起作为过程定义的一部分指定。 所有程序必须设计为使用语言环境运行。 您的COBOL和C++存储过程可以包含面向对象的扩展。 每次调用存储过程时,存储过程中的逻辑都会控制程序包是否执行以及执行多少次。
更多信息,请参阅创建外部存储过程。
外部SQL程序(已弃用)
- 过程体完全由SQL语句编写,包括SQL过程语言(SQL PL)语句。 在程序定义中,除了程序的各个属性外,还指定了程序体。 为外部SQL过程生成一个C程序和相关包。 它包含过程主体,包括控制语句。 有时可能还包括由 Db2 生成的语句。每次调用该过程时,程序包都会执行一次或多次。
原生SQL程序得到了更全面的支援,维护起来也更轻松,而且通常比外部SQL程序的性能更好,后者已被弃用。
更多信息,请参阅创建外部SQL程序(已弃用 )。