CL プログラムからストアード・プロシージャーを実行するにはどうすればよいですか? RUNSQLSTM にはソース メンバーが必要ですが、ユーザーが変数を簡単に渡せるようにコマンドを作成したいだけなので、これは機能しません。
17132 次
4 に答える
5
システム プログラムQZDFMDB2
を呼び出して、実行する SQL 文字列を含む 1 つのパラメーターを渡すことができます。この場合、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 への呼び出しを追加します。
2 番目のオプションは、CL プログラムを作成せずに RPG/COBOL を使用することです。埋め込み SQL を使用すると、ストアド プロシージャをパラメータで実行できます。それらの値は、コマンドからプログラムに渡される必要があります。
于 2008-10-29T16:22:50.807 に答える
0
QCMDEXC
あなたが探しているコマンドかもしれません。
于 2012-02-03T05:56:30.233 に答える