📅  最后修改于: 2020-11-27 05:19:34             🧑  作者: Mango
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的语法-
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 |
命令代码用于增强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 | Maintain Position at this level |
V | Maintain Position at this and all above levels |
– | Null Command Code |
多个资格的基本要点如下-
当我们需要使用两个或多个资格或字段进行比较时,需要多个资格。
我们使用布尔运算符(例如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。