Cics-rewrite

提供:Dev Guides
移動先:案内検索

CICS-書き換え

REWRITEコマンドは、ファイルに既に存在するレコードを変更するために使用されます。 このコマンドの前に、レコードはREAD UPDATEコマンドで読み取る必要があります。 パラメーターは、前に説明したものと同じです。 Rewriteコマンドの構文は次のとおりです-

構文

EXEC CICS REWRITE
   FILE (name)
   FROM (data-area)
   LENGTH (data-value)
END-EXEC.

次の例は、Studentidが主キーである 'FL001’ファイルにレコードを書き込む方法を示しています。 101学生IDを持つ新しいレコードがファイルに書き込まれます-

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 ‘101’         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)
   UPDATE
END-EXEC.
MOVE '100Mohtahim M TutorialsPnt' TO WS-STD-REC.
EXEC CICS REWRITE
   FILE ('FL001')
   FROM (WS-STD-REC)
   LENGTH (WS-STD-REC-LEN)
END-EXEC.

コマンド例外の書き換え

次の表は、REWRITEステートメント中に発生する例外を示しています-

Sr.No Exception & Description
1

NOTOPEN

ファイルが開いていません。

2

LENGERR

コマンドで指定された長さとレコードの実際の長さとの不一致。

3

NOTAUTH

ユーザーにファイルを使用するための十分な権限がない場合。

4

INVREQ

UPDATEを使用した事前の読み取りなしで書き換えます。

5

NOSPACE

データセットに十分なスペースがありません。