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 提供段型別以及段的特定資料庫出現。以下是限定 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 中使用命令程式碼:

unqualified 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 等布林運算子。

廣告
© . All rights reserved.