所以,我有一个查询来列出我们的 RPG 程序:
SELECT OBJNAME
FROM
(SELECT OBJNAME AS SCHEMA FROM TABLE (QSYS2.OBJECT_STATISTICS('*ALLSIMPLE', 'LIB')) S) AS SCHEMAS
,LATERAL (SELECT * FROM TABLE(QSYS2.OBJECT_STATISTICS(SCHEMAS.SCHEMA, 'PGM')) X) AS PROGRAMS
LEFT JOIN QSYS2.PROCEDURES
ON QSYS2.PROCEDURES.PROCNAME = PROGRAMS.OBJNAME
AND QSYS2.PROCEDURES.PROCSCHEMA = PROGRAMS.OBJLONGSCHEMA
WHERE
PROCNAME IS NULL
AND SCHEMAS.SCHEMA = 'MYLIB'
;
现在,给定一个 RPG 程序的名称,有什么方法可以通过 SQL 获取它的内容吗?
(或者,失败的 SQL,从 C# 应用程序中获取内容的其他方式?)
取决于您对“内容”的定义...
在 v7.3 和 v7.4 中,IBM 添加了一些服务,用于程序信息、模块信息等... IBM i 服务 (SQL)
但是,如果您将“内容”视为源列表中的...
然后,您需要使用 DBGVIEW(*LIST|*COPY|*ALL) 编译程序,然后使用调试器 API来检索源...