You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何手动通过CRTSQLCI、CRTCMOD和CRTPGM创建SQL存储程序?

手动创建SQL存储过程的分步方法

针对你存储在QSQLSRC中的SQL存储过程代码,手动通过CRTSQLCI、CRTCMOD、CRTPGM命令完成创建的步骤如下:

1. 预编译SQL源生成ILE C模块源

执行CRTSQLCI命令,将SQL存储过程代码预编译为ILE C语言的模块源文件:

CRTSQLCI SRCFILE(MYLIB/QSQLSRC) SRCMBR(MYSQLPROCEDURE1) +
  OUTPUT(*MODULE) MODULE(MYLIB/MYQ001) +
  USRPRF(*OWNER) LANGID(*USRPRF) +
  SPECIFIC(MYQ001) DBGVIEW(*ALL)

参数说明:

  • SRCFILE/SRCMBR:指定你的SQL源文件和成员路径
  • OUTPUT(*MODULE):指定输出为可编译模块而非直接生成程序
  • MODULE:指定生成的模块名称,需与存储过程定义中的SPECIFIC MYQ001一致
  • SPECIFIC:必须匹配存储过程定义里的特定名称
  • DBGVIEW(*ALL):可选参数,用于后续调试

2. 编译ILE C模块生成目标模块

用CRTCMOD命令编译上一步生成的临时C源成员,生成可绑定的ILE模块:

CRTCMOD MODULE(MYLIB/MYQ001) SRCFILE(MYLIB/QSQLSRC) SRCMBR(QSQLTEMP1) +
  USRPRF(*OWNER) OPTION(*INCDIR) DBGVIEW(*ALL)

注意:QSQLTEMP1是CRTSQLCI自动生成的临时C源成员,默认存放在同一源文件中。

3. 绑定模块生成存储过程程序

最后用CRTPGM命令将模块绑定为可调用的存储过程程序:

CRTPGM PGM(MYLIB/MYQ001) MODULE(MYLIB/MYQ001) +
  USRPRF(*OWNER) BNDDIR(SQLUSR) DBGVIEW(*ALL)

参数说明:

  • BNDDIR(SQLUSR):必须绑定SQL系统绑定目录,否则存储过程无法正常调用
  • 若存储过程依赖其他自定义模块或服务,需额外添加对应MODULE或BNDDIR参数

关键注意事项

  • 所有命令中的库名(MYLIB)需替换为你实际使用的库
  • 确保你拥有操作源文件、库及相关命令的足够权限(至少*USE权限)
  • 若预编译或编译报错,可在CRTSQLCI命令中添加ERRFILE(MYLIB/QSQERRC)参数查看详细错误日志

内容的提问来源于stack exchange,提问作者jemrug

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 01:50:25