Учебники

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.

  • Чтобы получить доступ к определенному сегменту, переместите имя сегмента в поле ИМЯ СЕГМЕНТА.

Базовый неквалифицированный SSA имеет длину 9 байтов.

Первые 8 байтов содержат имя сегмента, которое используется для обработки.

Последний байт всегда содержит пробел.

DL / I использует последний байт для определения типа SSA.

Чтобы получить доступ к определенному сегменту, переместите имя сегмента в поле ИМЯ СЕГМЕНТА.

Следующие изображения показывают структуры неквалифицированных и квалифицированных 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 следующие:

  • Первые 8 байтов квалифицированного SSA содержат имя сегмента, используемое для обработки.

  • Девятый байт – это левая скобка ‘(‘.

  • Следующие 8 байтов, начиная с десятой позиции, указывают имя поля, которое мы хотим найти.

  • После имени поля в 18- й и 19- й позициях указывается двухсимвольный код реляционного оператора.

  • Затем мы указываем значение поля и в последнем байте есть правая скобка ‘)’.

Первые 8 байтов квалифицированного SSA содержат имя сегмента, используемое для обработки.

Девятый байт – это левая скобка ‘(‘.

Следующие 8 байтов, начиная с десятой позиции, указывают имя поля, которое мы хотим найти.

После имени поля в 18- й и 19- й позициях указывается двухсимвольный код реляционного оператора.

Затем мы указываем значение поля и в последнем байте есть правая скобка ‘)’.

В следующей таблице показаны реляционные операторы, используемые в квалифицированном SSA.

Оператор связи Условное обозначение Описание
EQ знак равно равных
Небраска ~ = ˜ Не равный
GT > Лучше чем
GE > = Больше или равно
LT << Меньше, чем
LE <= Меньше или равно

Командные коды

Коды команд используются для улучшения функциональности вызовов DL / I. Коды команд уменьшают количество вызовов DL / I, делая программы простыми. Кроме того, это повышает производительность, так как количество вызовов уменьшается. На следующем рисунке показано, как коды команд используются в неквалифицированных и квалифицированных SSA –

неквалифицированный сша

Ключевые пункты командных кодов следующие:

  • Чтобы использовать коды команд, укажите звездочку в 9- й позиции SSA, как показано на рисунке выше.

  • Код команды кодируется на десятой позиции.

  • Начиная с 10- й позиции, DL / I рассматривает все символы как коды команд, пока не встретит пробел для неквалифицированного SSA и левую скобку для квалифицированного SSA.

Чтобы использовать коды команд, укажите звездочку в 9- й позиции SSA, как показано на рисунке выше.

Код команды кодируется на десятой позиции.

Начиная с 10- й позиции, DL / I рассматривает все символы как коды команд, пока не встретит пробел для неквалифицированного SSA и левую скобку для квалифицированного SSA.

В следующей таблице приведен список кодов команд, используемых в SSA –

Код команды Описание
С Сцепленный ключ
D Путь вызова
F Первое появление
L Последнее вхождение
N Путь вызова игнорируется
п Установить Происхождение
Q Сегмент Enqueue
U Поддерживать позицию на этом уровне
В Поддерживать позицию на этом и всех вышеперечисленных уровнях
Нулевой код команды

Несколько квалификаций

Основные пункты нескольких квалификаций следующие:

  • Многократные квалификации требуются, когда нам нужно использовать две или более квалификации или поля для сравнения.

  • Мы используем логические операторы, такие как AND и OR, чтобы соединить две или более квалификаций.

  • Можно использовать несколько квалификаций, когда мы хотим обработать сегмент на основе диапазона возможных значений для одного поля.

Многократные квалификации требуются, когда нам нужно использовать две или более квалификации или поля для сравнения.

Мы используем логические операторы, такие как 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.