Db2

有沒有辦法使用 SQL 獲取 RPG 程序的內容?

  • February 19, 2020

所以,我有一個查詢來列出我們的 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來檢索源…

引用自:https://dba.stackexchange.com/questions/260062