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