Ims Db 简明教程
IMS DB - SSA
SSA 表示段搜索参数。SSA 用于标识被访问的段发生。它是一个可选参数。我们可以根据要求包含任意数量的 SSA。SSA 有两种类型 −
-
Unqualified SSA
-
Qualified SSA
Unqualified 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 的结构 −
Qualified 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中使用的关系运算符。
Relational Operator |
Symbol |
Description |
EQ |
= |
Equal |
NE |
~= ˜ |
Not equal |
GT |
> |
Greater than |
GE |
>= |
Greater than or equal |
LT |
<< |
Less than |
LE |
⇐ |
Less than or equal |
Command Codes
命令代码用于增强DL/I调用的功能。命令代码减少了DL/I调用的数量,使程序变得简单。此外,它提高了性能,这是因为减少了调用的数量。下图显示了在不合格和合格的SSA中如何使用命令代码−
命令代码的主要要点如下−
-
要使用命令代码,请在SSA的第9个位置指定星号,如上图所示。
-
命令代码编码在第十位。
-
从第10位开始,DL/I认为所有字符都是命令代码,直到它遇到一个不合格的SSA空格或一个合格的SSA左括号。
下表显示了SSA中使用的命令代码列表−
Command Code |
Description |
C |
Concatenated Key |
D |
Path Call |
F |
First Occurrence |
L |
Last Occurrence |
N |
Path Call Ignore |
P |
Set Parentage |
Q |
Enqueue Segment |
U |
在此级别上保持位置 |
V |
在此级别以及所有较高级别上保持位置 |
- |
Null Command Code |
Multiple Qualifications
多重限定的基本要点如下 −
-
当我们需要对两个或更多限定符或字段进行比较时,需要多重限定。
-
我们使用布尔运算符,如 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 QUALIification 的简称,其中我们可以提供布尔运算符,如 AND 或 OR。