- IMS DB 基础教程
- IMS DB - 首页
- IMS DB - 概述
- IMS DB - 结构
- IMS DB - DL/I 术语
- IMS DB - DL/I 处理
- IMS DB - 控制块
- IMS DB - 编程
- IMS DB - Cobol 基础
- IMS DB - DL/I 函数
- IMS DB - PCB 掩码
- IMS DB - 段搜索参数 (SSA)
- IMS DB - 数据检索
- IMS DB - 数据操作
- IMS DB - 二次索引
- IMS DB - 逻辑数据库
- IMS DB - 恢复
- IMS DB 有用资源
- IMS DB - 问答
- IMS DB - 快速指南
- IMS DB - 有用资源
IMS DB - 段搜索参数 (SSA)
SSA 代表段搜索参数 (Segment Search Arguments)。SSA 用于标识正在访问的段的出现。这是一个可选参数。根据需要,我们可以包含任意数量的 SSA。SSA 有两种类型:
- 非限定 SSA
- 限定 SSA
非限定 SSA
非限定 SSA 提供在调用中使用的段的名称。以下是未限定 SSA 的语法:
01 UNQUALIFIED-SSA. 05 SEGMENT-NAME PIC X(8). 05 FILLER PIC X VALUE SPACE.
非限定 SSA 的关键点如下:
基本的非限定 SSA 长度为 9 字节。
前 8 个字节包含用于处理的段名称。
最后一个字节始终包含空格。
DL/I 使用最后一个字节来确定 SSA 的类型。
要访问特定段,请将段名称移动到 SEGMENT-NAME 字段。
下图显示了非限定和限定 SSA 的结构:
限定 SSA
限定 SSA 提供段类型以及段的特定数据库出现。以下是限定 SSA 的语法:
01 QUALIFIED-SSA. 05 SEGMENT-NAME PIC X(8). 05 FILLER PIC X(01) VALUE '('. 05 FIELD-NAME PIC X(8). 05 REL-OPR PIC X(2). 05 SEARCH-VALUE PIC X(n). 05 FILLER PIC X(n+1) VALUE ')'.
限定 SSA 的关键点如下:
限定 SSA 的前 8 个字节包含用于处理的段名称。
第九个字节为左括号'('。
从第十个位置开始的接下来的 8 个字节指定我们要搜索的字段名称。
在字段名称之后,在第 18 和 19 个位置,我们指定两个字符的关系运算符代码。
然后我们指定字段值,最后一个字节为右括号')'。
下表显示了在限定 SSA 中使用的关系运算符。
关系运算符 | 符号 | 描述 |
---|---|---|
EQ | = | 等于 |
NE | ~= ˜ | 不等于 |
GT | > | 大于 |
GE | >= | 大于或等于 |
LT | << | 小于 |
LE | <= | 小于或等于 |
命令代码
命令代码用于增强 DL/I 调用的功能。命令代码减少了 DL/I 调用的数量,使程序更简单。此外,由于调用次数减少,它还提高了性能。下图显示了如何在非限定和限定 SSA 中使用命令代码:
命令代码的关键点如下:
要使用命令代码,请在上图所示的 SSA 的第 9 个位置指定星号“*”。
命令代码编码在第十个位置。
从第十个位置开始,DL/I 将所有字符都视为命令代码,直到遇到非限定 SSA 的空格和限定 SSA 的左括号。
下表显示了在 SSA 中使用的命令代码列表:
命令代码 | 描述 |
---|---|
C | 连接键 |
D | 路径调用 |
F | 第一个出现 |
L | 最后一个出现 |
N | 忽略路径调用 |
P | 设置父子关系 |
Q | 入队段 |
U | 保持此级别的位置 |
V | 保持此级别和所有上级的级别位置 |
- | 空命令代码 |
多个限定
多个限定的基本要点如下:
当我们需要使用两个或多个限定或字段进行比较时,需要多个限定。
我们使用 AND 和 OR 等布尔运算符来连接两个或多个限定。
当我们想要根据单个字段的一系列可能值来处理段时,可以使用多个限定。
以下是多个限定的语法:
01 QUALIFIED-SSA. 05 SEGMENT-NAME PIC X(8). 05 FILLER PIC X(01) VALUE '('. 05 FIELD-NAME1 PIC X(8). 05 REL-OPR PIC X(2). 05 SEARCH-VALUE1 PIC X(m). 05 MUL-QUAL PIC X VALUE '&'. 05 FIELD-NAME2 PIC X(8). 05 REL-OPR PIC X(2). 05 SEARCH-VALUE2 PIC X(n). 05 FILLER PIC X(n+1) VALUE ')'.
MUL-QUAL 是 MULtiple QUALIfication 的缩写,我们可以在其中提供 AND 或 OR 等布尔运算符。