IMS DB - SSA
SSA означает «аргументы поиска сегмента». 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 следующие:
Первые 8 байтов квалифицированного SSA содержат имя сегмента, используемого для обработки.
Девятый байт - левая скобка '('.
Следующие 8 байтов, начиная с десятой позиции, определяют имя поля, которое мы хотим найти.
После того, как имя поля, в 18 - е и 19 - е позиции, мы задаем два-символьный код реляционной оператора.
Затем мы указываем значение поля и в последнем байте стоит правая скобка ')'.
В следующей таблице показаны реляционные операторы, используемые в квалифицированном SSA.
Оператор отношения | Условное обозначение | Описание |
---|---|---|
Эквалайзер | знак равно | Равно |
NE | ~ = ˜ | Не равный |
GT | > | Больше чем |
GE | > = | Больше или равно |
LT | << | Меньше, чем |
LE | <= | Меньше или равно |
Коды команд
Коды команд используются для расширения функциональности вызовов DL / I. Коды команд сокращают количество вызовов DL / I, делая программы простыми. Кроме того, это улучшает производительность, поскольку количество вызовов уменьшается. На следующем изображении показано, как коды команд используются в неквалифицированных и квалифицированных SSA.
Ключевые моменты командных кодов следующие:
Чтобы использовать коды команд, укажите звездочку в 9- й позиции SSA, как показано на изображении выше.
Код команды закодирован в десятой позиции.
Начиная с 10- й позиции, DL / I считает все символы кодами команд, пока не встретит пробел для неквалифицированного SSA и левой круглой скобки для квалифицированного SSA.
В следующей таблице показан список кодов команд, используемых в SSA -
Код команды | Описание |
---|---|
C | Составной ключ |
D | Путь вызова |
F | Первое появление |
L | Последнее появление |
N | Игнорировать вызов пути |
п | Установить отцовство |
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 QUALIification, в котором мы можем предоставлять логические операторы, такие как AND или OR.