- CICS 教程
- CICS - 首页
- CICS - 概述
- CICS - 环境
- CICS - 基本术语
- CICS - 内核
- CICS - 事务
- CICS - COBOL 基础
- CICS - BMS
- CICS - MAP
- CICS - 接口块
- CICS - 伪程序设计
- CICS - 辅助键
- CICS - 文件处理
- CICS - 错误处理
- CICS - 控制操作
- CICS - 临时存储
- CICS - 互连通信
- CICS - 状态码
- CICS - 面试问题
- CICS 有用资源
- CICS - 快速指南
- CICS - 有用资源
- CICS - 讨论
CICS - 读取
READ 命令使用主键从文件读取数据。以下是 READ 命令的语法:
语法
EXEC CICS READ FILE('name') INTO(data-area) RIDFLD(data-area) LENGTH(data-value) KEYLENGTH(data-value) END-EXEC.
下表列出了 READ 命令中使用的参数:
序号 | 参数及描述 |
---|---|
1 |
FILE 文件名是要读取的文件的名称。这是标识文件 FCT 条目的 CICS 符号文件名。文件名最多可以包含 8 个字符,如果它们是文字,则应括在引号中。 |
2 |
INTO 数据区是要将记录读取到的变量,通常是工作存储中的结构。INTO 是 READ 命令使用的必要条件。 |
3 | RIDFLD 它包含要读取的记录键的数据区的名称。 |
4 | LENGTH 它指定可以读取到指定数据区的最大字符数。它必须是半字二进制值 (PIC S9(4) COMP)。READ 命令完成后,CICS 会将我们指定的最大值替换为记录的真实长度。出于这个原因,我们必须将 LENGTH 指定为数据区的名称而不是文字,并且如果我们在程序中多次使用 LENGTH,则必须重新初始化此数据区。较长的记录将引发错误条件。 |
5 | KEYLENGTH 它指定键的长度。 |
示例
以下示例演示了如何从 'FL001' 文件读取记录,其中 Student-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 ‘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 语句期间出现的异常列表:
序号 | 异常及描述 |
---|---|
1 | NOTOPEN 文件未打开。 |
2 | NOTFND 正在搜索的记录在数据集中不存在。 |
3 | FILENOTFOUND FCT 中未创建文件条目。 |
4 | LENGERR 命令中指定的长度与记录的实际长度不匹配。 |
5 | NOTAUTH 如果用户没有足够的权限使用该文件。 |
6 | DUPKEY 如果多个记录满足备用键上的条件。 |