如何从 CL 程序运行存储过程?RUNSQLSTM 需要一个源成员,但我只想构建一个命令,以便用户可以轻松地传入变量,所以这不起作用。
main_menu
问问题
17132 次
4 回答
5
您可以调用系统程序QZDFMDB2
并将其传递一个带有 SQL 字符串的参数以执行。在这种情况下,SQL 字符串是对存储过程的调用:
CALL PGM(QZDFMDB2) PARM('CALL PROCEDURE (''XYZ'', ''ABC'')')
要替换您的值,请使用 PARM 的变量:
DCL VAR(&CALL) TYPE(*CHAR) LEN(200)
CHGVAR VAR(&CALL)
VALUE('CALL PROCEDURE (''' *CAT &PARM1 *TCAT ''', ''' *CAT &PARM2 *TCAT ''')')
CALL PGM(QZDFMDB2) PARM(&CALL)
于 2008-10-30T22:01:05.460 回答
3
可能有2个选项:
在 CL 程序中创建一个临时源成员。使用提供的参数构造 SQL 语句以执行存储过程并将此源代码写入临时成员。然后使用生成的成员作为参数添加对 RUNSQLSTM 的调用。
第二种选择是不创建 CL 程序,而是使用 RPG/COBOL。通过使用嵌入式 SQL,可以使用参数执行存储过程。它们的值应该从命令传递给程序。
于 2008-10-29T16:22:50.807 回答
0
QCMDEXC
可能是您正在寻找的命令。
于 2012-02-03T05:56:30.233 回答