Cics-read
CICS-読み取り
READコマンドは、主キーを使用してファイルからデータを読み取ります。 READコマンドの構文は次のとおりです-
構文
EXEC CICS READ
FILE('name')
INTO(data-area)
RIDFLD(data-area)
LENGTH(data-value)
KEYLENGTH(data-value)
END-EXEC.
次の表は、READコマンドで使用されるパラメータを示しています-
Sr.No | Parameter & Description |
---|---|
1 |
FILE ファイル名は、読み取りたいファイルの名前です。 これは、ファイルのFCTエントリを識別するCICSシンボリックファイル名です。 ファイル名は最大8文字で、リテラルの場合は引用符で囲む必要があります。 |
2 |
INTO データ領域は、レコードが読み込まれる変数であり、通常は作業用ストレージの構造です。 INTOは、READコマンドを使用するために必要です。 |
3 |
RIDFLD 読み取りたいレコードのキーを含むデータ領域の名前があります。 |
4 |
LENGTH 指定されたデータ領域に読み込まれる最大文字数を指定します。 ハーフワードのバイナリ値でなければなりません(PIC S9(4)COMP)。 READコマンドが完了すると、CICSは指定された最大値をレコードの実際の長さに置き換えます。 このため、リテラルではなくデータ領域の名前としてLENGTHを指定し、プログラムでLENGTHに複数回使用する場合、このデータ領域を再初期化する必要があります。 長いレコードはエラー状態を引き起こします。 |
5 |
KEYLENGTH キーの長さを指定します。 |
例
次の例は、学生IDが主キーである「FL001」ファイルからレコードを読み取る方法を示しています-
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-STD-REC-LEN PIC S9(4) COMP.
01 WS-STD-KEY-LEN PIC S9(4) COMP.
01 WS-STD-REC-KEY PIC 9(3).
01 WS-STD-REC PIC X(70).
PROCEDURE DIVISION.
MOVE +70 TO WS-STD-REC-LEN.
MOVE ‘100’ TO WS-STD-REC-KEY.
MOVE 3 TO WS-STD-KEY-LEN.
EXEC CICS READ
FILE ('FL001')
INTO (WS-STD-REC)
LENGTH (WS-STD-REC-LEN)
RIDFLD (WS-STD-REC-KEY)
KEYLENGTH (WS-STD-KEY-LEN)
END-EXEC.
読み取りコマンドオプション
次のオプションはREADコマンドで使用できます-
- GENERIC -完全なキー値がわからない場合に使用されます。 たとえば、主キーが「10」で始まり、残りのキーは何でもよいレコードが必要です。 キーの長さは3文字ですが、言及しているのは2文字のみです。 マッチングを行うために必要な長さを与えるキーの長さに言及することが重要です。 基準を満たす最初のレコードが選択されます。
- UPDATE -現在のトランザクションでレコードを更新することを指定します。 UPDATEを指定すると、トランザクションは要求されたレコードを排他的に制御します。 レコードを書き換えたいときに使用します。
- EQUAL -キーがRIDFLDで指定されたものと完全に一致するレコードのみが必要であることを指定します。
- GTEQ -キーが指定されたキー以上である最初のレコードが必要であることを指定します。
EXEC CICS READ
FILE('name')
INTO(data-area)
RIDFLD(data-area)
LENGTH(data-value)
KEYLENGTH(data-value)
GENERIC
UPDATE
EQUAL
GTEQ
END-EXEC.
読み取りコマンドの例外
次の表は、READステートメント中に発生する例外のリストを示しています-
Sr.No | Exception & Description |
---|---|
1 |
NOTOPEN ファイルが開いていません。 |
2 |
NOTFND 検索中のレコードはデータセットに存在しません。 |
3 |
FILENOTFOUND ファイルエントリはFCTでは作成されません。 |
4 |
LENGERR コマンドで指定された長さとレコードの実際の長さとの不一致。 |
5 |
NOTAUTH ユーザーにファイルを使用するための十分な権限がない場合。 |
6 |
DUPKEY 複数のレコードが代替キーの条件を満たしている場合。 |