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

如何通过System i Access ODBC Driver获取DB2 CL程序源文件?

解决通过System i Access ODBC Driver获取CL程序源文件的问题

错误原因分析

  1. CPF9802错误:要么程序PSAAABBB不在当前库列表(LIBL)中,要么当前ODBC用户没有该程序的访问权限。
  2. CPF0006错误:RTVCLSRC命令不存在LIBL参数,参数使用错误导致命令执行失败。

解决方案

1. 修正RTVCLSRC命令格式

RTVCLSRC指定程序所在库的正确方式是直接在PGM参数中使用库名/程序名的格式,而非错误的LIBL参数。示例:

CALL QSYS2.QCMDEXC('RTVCLSRC PGM(MAINDB/PSAAABBB)')

如果需要指定源文件的存储位置(默认会写入当前库的QCLSRC),可以添加SRCFILE参数明确指定:

CALL QSYS2.QCMDEXC('RTVCLSRC PGM(MAINDB/PSAAABBB) SRCFILE(MAINDB/QCLSRC)')

2. 解决权限问题

如果执行修正后的命令仍报CPF9802,需确认以下权限:

  • 当前ODBC用户对程序所在库(MAINDB)拥有*USE权限;
  • 当前用户对程序PSAAABBB拥有*USE权限;
  • 当前用户对目标源文件(如MAINDB/QCLSRC)拥有*CHANGE或*ADD权限(因为RTVCLSRC需要将源内容写入源文件)。

可联系系统管理员执行以下授权命令(替换为实际用户名):

GRANT *USE ON LIBRARY(MAINDB) TO USER(你的用户名)
GRANT *USE ON OBJECT(MAINDB/PSAAABBB) TO USER(你的用户名)
GRANT *CHANGE ON FILE(MAINDB/QCLSRC) TO USER(你的用户名)

3. 获取源文件内容

RTVCLSRC只是将CL程序的源导出到源文件成员中,若要通过ODBC读取源内容,需查询对应的源文件:

SELECT SRCDTA FROM MAINDB.QCLSRC WHERE SRCMBR = 'PSAAABBB'

内容的提问来源于stack exchange,提问作者Lukas Fürst

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 13:33:16