0

次に、CLプログラムを使用してジャーナル内の特定のエントリを見つける必要があります。私がそれを見つけるために使用する方法は、DSPJRNEを使用してジャーナル項目を出力ファイルに入れ、次にOPNQRYFを使用して目的の項目をフィルターに掛けることです。ファイルには一意のキーが設定されているため、ジャーナルエントリデータをキーと比較する予定です。問題は、キーの1つがパック10進数であるため、ジャーナルエントリでは、16進数の文字コードとして扱われ、奇妙な記号として表示されることです。したがって、文字列を比較するには、パックされた10進キーを対応する文字に変換する必要があります。CLでこれを達成する方法は?CLを使用できない場合、RPGはどうですか?

4

2 に答える 2

2

あなたの当面の質問に答えるために、CVTCH MI 命令は 16 進数を char に変換しますが、私はそのルートには行きません。CLでもRPGでもない。むしろ、James のアドバイスに従い、いくつかの追加の手順を実行します。

DSPJRNE OUTFILE(QTEMP/DSPJRNE)
QRY input file DSPJRNE, output file QRYJRNE, select only JOESD
CRTDUPOBJ PRODUCTION_FILE QTEMP/JRNF DATA(*NO)
CPYF QRYJRNE JRNF FMTOPT(*NOCHK)

これにより、実動ファイルとまったく同じレイアウトの外部記述ファイルが得られます。などを問い合わせることができます。

于 2012-05-29T16:28:42.170 に答える
1

特定のファイルのジャーナル エントリをプルしている場合は、SQL を巧みに使用して外部記述ファイルにそれらをダンプできます。

CREATE TABLE QTEMP/QADSPJRN LIKE QSYS/QADSPJRN

ALTER TABLE QTEMP/QADSPJRN DROP COLUMN JOESD

CREATE TABLE QTEMP/DSPJRNE AS (SELECT * FROM QTEMP/QADSPJRN, FILE-LIB/FILE) 
WITH NO DATA

DSPJRNE ... OUTPUT(*OUTFILE) OUTFILFMT(*TYPE1) OUTFILE(QTEMP/DSPJRNE) 
ENDDTALEN(*CALC)
于 2012-05-29T16:04:04.453 に答える