有没有办法在不打开 RPGLE 程序的情况下从 CL 命令编辑 RPGLE 程序?
Is there a way to edit RPGLE program from CL command without opening RPGLE program?
我有一个如下所示的 RPGLE 程序,它有日期 220318
的标签 AD11
,但对于 220317
和 220323
等其他日期没有标签。是否有任何 CL 命令可以为其他两个日期插入 AD11
标记?或者,如果根据作为输入参数提供的日期,位置 1 到 4 中没有标签,是否可以编写任何程序来插入标签?
程序显示 220318
的标签 AD11
任何 suggestions/guidance 不胜感激。
由于源成员存储在文件中,您可以创建一个HLL(RPG或COBOL)程序来修改源成员中的数据。
CL 不能专门这样做,但你可以做的是在 CL 中嵌入 SQL,或者直接通过“STRSQL”嵌入 运行 SQL。
n.b。 SQL 没有成员的概念,因此如果包含您的 RPGLE 源成员的文件有多个成员,您需要在 运行 设置您的脚本之前覆盖该成员。
示例 CL 程序如下所示;
PGM
/* Override file name "QRPGLESRC" to "MYLIB/QRPGLESRC.SRCMBR" */
OVRDBF FILE(QRPGLESRC) TOFILE(MYLIB/QRPGLESRC) +
MBR(SRCMBR) OVRSCOPE(*JOB)
/* Update "MYLIB/QRPGLESRC.SRCMBR" */
RUNSQL SQL('UPDATE QRPGLESRC +
SET SRCDTA = ''AD11'' || SUBSTR(SRCDTA,5) +
WHERE SRCDAT = 220408') +
COMMIT(*NONE)
/* Remove previous override */
DLTOVR FILE(QRPGLESRC) LVL(*JOB)
ENDPGM
我有一个如下所示的 RPGLE 程序,它有日期 220318
的标签 AD11
,但对于 220317
和 220323
等其他日期没有标签。是否有任何 CL 命令可以为其他两个日期插入 AD11
标记?或者,如果根据作为输入参数提供的日期,位置 1 到 4 中没有标签,是否可以编写任何程序来插入标签?
程序显示 220318
AD11
任何 suggestions/guidance 不胜感激。
由于源成员存储在文件中,您可以创建一个HLL(RPG或COBOL)程序来修改源成员中的数据。
CL 不能专门这样做,但你可以做的是在 CL 中嵌入 SQL,或者直接通过“STRSQL”嵌入 运行 SQL。
n.b。 SQL 没有成员的概念,因此如果包含您的 RPGLE 源成员的文件有多个成员,您需要在 运行 设置您的脚本之前覆盖该成员。
示例 CL 程序如下所示;
PGM
/* Override file name "QRPGLESRC" to "MYLIB/QRPGLESRC.SRCMBR" */
OVRDBF FILE(QRPGLESRC) TOFILE(MYLIB/QRPGLESRC) +
MBR(SRCMBR) OVRSCOPE(*JOB)
/* Update "MYLIB/QRPGLESRC.SRCMBR" */
RUNSQL SQL('UPDATE QRPGLESRC +
SET SRCDTA = ''AD11'' || SUBSTR(SRCDTA,5) +
WHERE SRCDAT = 220408') +
COMMIT(*NONE)
/* Remove previous override */
DLTOVR FILE(QRPGLESRC) LVL(*JOB)
ENDPGM