iSeries - 从CL程序调用SQL存储过程

3 sql control-language ibm-midrange

如何从CL程序运行存储过程?RUNSQLSTM需要一个源成员,但我只想构建一个命令,以便用户可以轻松地传入变量,因此这不起作用.

Pau*_*gan 5

您可以调用系统程序QZDFMDB2并将一个参数传递给SQL字符串来执行.在这种情况下,SQL字符串是对存储过程的调用:

  CALL PGM(QZDFMDB2) PARM('CALL PROCEDURE (''XYZ'', ''ABC'')')
Run Code Online (Sandbox Code Playgroud)

要在您的值中替换,请使用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)
Run Code Online (Sandbox Code Playgroud)