创建外部存储过程
外部存储过程是指 用主机语言编写的过程,可以包含 SQL 语句。 外部程序的源代码与定义是分开的。
准备工作
在创建外部程序之前,请发送电子邮件至 在安装过程中配置 Db2 ,以便运行存储过程和用户定义的函数 或 配置 Db2 ,以便在迁移期间运行存储过程和用户定义的函数。
关于本任务
限制 :这些说明不适用于Java™存储过程。 创建 Java存储过程的过程有所不同。 准备过程因具体操作而异。
过程
创建外部存储过程:
定义C语言存储过程的示例
假设您编写并准备了一个存储过程,该过程具有以下特征:
- 存储过程的名称为B。
- 存储过程有两个参数:
- 一个名为 V1
- 一个长度为9的字符输出参数,名为 V2
- 存储过程是用C语言编写的。
- 存储过程不包含任何SQL语句。
- 同样的输入总是产生同样的输出。
- 负载模块的名称为SUMMOD。
- 数据包的集合名称为SUMCOLL。
- 存储过程运行时间不得超过900个CPU服务单元。
- 参数可以为空值。
- 存储过程完成后将从内存中删除。
- 该存储过程需要以下 Language Environment® 运行时选项:
MSGFILE(OUTFILE),RPTSTG(ON),RPTOPTS(ON) - 存储过程是名为“工资单”的WLM应用程序环境的一部分。
- 存储过程作为主程序运行。
- 存储过程不会访问非Db2 资源,因此不需要特殊的 RACF® 环境。
- 存储过程最多可返回10个结果集。
- 当控制权返回到客户端程序时, Db2 不会自动提交更新。
下面的CREATE PROCEDURE语句定义了存储过程 Db2 :
CREATE PROCEDURE B(IN V1 INTEGER, OUT V2 CHAR(9))
LANGUAGE C
DETERMINISTIC
NO SQL
EXTERNAL NAME SUMMOD
COLLID SUMCOLL
ASUTIME LIMIT 900
PARAMETER STYLE GENERAL WITH NULLS
STAY RESIDENT NO
RUN OPTIONS 'MSGFILE(OUTFILE),RPTSTG(ON),RPTOPTS(ON)'
WLM ENVIRONMENT PAYROLL
PROGRAM TYPE MAIN
SECURITY DB2
DYNAMIC RESULT SETS 10
COMMIT ON RETURN NO;