特定のファイルからいくつかのレコードを選択するために、CL プログラムで OPNQRYF を使用しようとしています。照会選択ストリングは、OPNQRYF ステートメントで定義されます。しかし、実行中に、QRYSLT が空であるという理由でメッセージ CPF9899 がスローされました。プログラムを数回再コンパイルしましたが、問題はまだありました。次に、最初に文字変数でクエリの選択を定義してから、それを QRYSLT に割り当てようとしました。今回はうまくいきました。どうしてそうなった?同じプログラム内に QRYSLT が定義された他の OPNQRYF ステートメントがいくつかあり、それらは正常に機能しました。OPNQRYF に干渉する可能性のあるものは他にありますか?
これは機能しません:
OPNQRYF FILE(&SLIB/CKFESCP) QRYSLT('DWSYST *EQ "' *CAT &KVAL *TCAT '"')
そして、これは次のことを行います:
DCL VAR(&QRYSLT) TYPE(*CHAR) LEN(200)
.
.
.
CHGVAR VAR(&QRYSLT) VALUE('DWSYST *EQ "' *CAT &KVAL *TCAT '"')
OPNQRYF FILE(&SLIB/CKFESCP) QRYSLT(&QRYSLT)