Ims Db 简明教程

IMS DB - SSA

SSA 表示段搜索参数。SSA 用于标识被访问的段发生。它是一个可选参数。我们可以根据要求包含任意数量的 SSA。SSA 有两种类型 −

  1. Unqualified SSA

  2. Qualified SSA

Unqualified SSA

不合格 SSA 提供了在调用中所使用段的名称。下面给出了不合格 SSA 的语法 −

01 UNQUALIFIED-SSA.
   05  SEGMENT-NAME  PIC X(8).
   05  FILLER        PIC X     VALUE SPACE.

不合格 SSA 的要点如下 −

  1. 基本的不合格 SSA 为 9 字节长。

  2. 前 8 个字节保存用于处理的段名称。

  3. 最后一个字节总是包含空格。

  4. DL/I uses the last byte to determine the type of SSA.

  5. To access a particular segment, move the name of the segment in the SEGMENT-NAME field.

The following images show the structures of unqualified and qualified SSAs −

ssa

Qualified SSA

A Qualified SSA provides the segment type with the specific database occurrence of a segment. Given below is the syntax of a Qualified 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的主要内容如下−

  1. 合格的SSA的前8个字节包含用于处理的段名。

  2. 第九个字节是一个左括号“(”。

  3. 从第十位开始的接下来的8字节指定我们想要搜索的字段名称。

  4. 在字段名称之后,在第18和19位中,我们指定两位字符的关系运算符代码。

  5. 然后我们在括号中指定字段值,最后一个字节右括号)”。

下表显示了合格的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中如何使用命令代码−

unqualified ssa

命令代码的主要要点如下−

  1. 要使用命令代码,请在SSA的第9个位置指定星号,如上图所示。

  2. 命令代码编码在第十位。

  3. 从第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

Multiple Qualifications

多重限定的基本要点如下 −

  1. 当我们需要对两个或更多限定符或字段进行比较时,需要多重限定。

  2. 我们使用布尔运算符,如 AND 和 OR 来连接两个或更多限定。

  3. 当我们想要基于单个字段的可能值的范围来处理一段时,可以使用多重限定。

以下是多重限定的语法 −

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。