CICS - DELETE 命令
DELETE 命令用于删除文件中存在的记录。在此命令之前,必须使用 READ UPDATE 命令读取记录。参数与之前描述的相同。Delete 命令的语法如下 −
语法
EXEC CICS DELETE
FILE('name')
END-EXEC.
以下是使用 Update 选项直接删除记录而不读取它的语法 −
语法
EXEC CICS DELETE
FILE('name')
RIDFLD(data-value)
END-EXEC.
示例
以下是 Group Delete 的示例。可以使用 Generic 选项完成此操作,其中将删除所有满足通用条件的记录。NUMREC 将保存已删除的记录数。此处提到的字段应为 S9(4) comp。
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).
01 WS-NUM-REC-DEL PIC S9(4).
PROCEDURE DIVISION.
MOVE '11' TO WS-STD-REC-KEY.
MOVE 2 TO WS-STD-KEY-LEN.
EXEC CICS READ
FILE ('FL001')
RIDFLD (WS-STD-REC-KEY)
KEYLENGTH (WS-STD-KEY-LEN)
GENERIC
NUMREC (WS-NUM-REC-DEL)
END-EXEC.
删除命令异常
下表显示了 DELETE 语句期间出现的异常列表 −
| Sr.No | 异常 &描述 |
|---|---|
| 1 | NOTOPEN 文件未打开。 |
| 2 | NOTFND 正在搜索的记录在数据集中不存在(使用 RIDFLD 进行 DELETE)。 |
| 3 | NOTAUTH 如果用户没有足够的权限使用该文件。 |
| 4 | INVREQ 使用 READ 进行重写,无需事先进行更新。 |
| 5 | FILENOTFOUND FCT 中未输入文件。 |

cics_file_handling.html