Учебники

IMS DB – манипулирование данными

Ниже перечислены различные методы обработки данных, используемые в вызовах IMS DL / I.

  • ISRT Call
  • Получить удержание звонков
  • REPL Call
  • DLET Call

Давайте рассмотрим следующую структуру базы данных IMS для понимания вызовов функций манипулирования данными:

IMS DATABASE

ISRT Call

Обращает на себя внимание –

  • Вызов ISRT известен как вызов вставки, который используется для добавления экземпляров сегментов в базу данных.

  • Звонки ISRT используются для загрузки новой базы данных.

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

  • Неквалифицированный или квалифицированный SSA должен быть указан в вызове, чтобы DL / I знал, где разместить вхождение сегмента.

  • Мы можем использовать комбинацию как неквалифицированного, так и квалифицированного SSA в вызове. Квалифицированный SSA может быть указан для всех вышеперечисленных уровней. Давайте рассмотрим следующий пример –

Вызов ISRT известен как вызов вставки, который используется для добавления экземпляров сегментов в базу данных.

Звонки ISRT используются для загрузки новой базы данных.

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

Неквалифицированный или квалифицированный SSA должен быть указан в вызове, чтобы DL / I знал, где разместить вхождение сегмента.

Мы можем использовать комбинацию как неквалифицированного, так и квалифицированного SSA в вызове. Квалифицированный SSA может быть указан для всех вышеперечисленных уровней. Давайте рассмотрим следующий пример –

CALL 'CBLTDLI' USING DLI-ISRT
                     PCB-NAME
                     IO-AREA
                     LIBRARY-SSA
                     BOOKS-SSA
                     UNQUALIFIED-ENGINEERING-SSA

Приведенный выше пример показывает, что мы выполняем вызов ISRT, предоставляя комбинацию квалифицированных и неквалифицированных SSA.

Когда новый сегмент, который мы вставляем, имеет уникальное ключевое поле, он добавляется в правильную позицию. Если ключевое поле не уникально, оно добавляется по правилам, определенным администратором базы данных.

Когда мы выполняем вызов ISRT без указания ключевого поля, тогда правило вставки сообщает, где разместить сегменты относительно существующих двойных сегментов. Ниже приведены правила вставки –

  • Первый – если правило является первым, новый сегмент добавляется перед любыми существующими близнецами.

  • Последний – если правило является последним, новый сегмент добавляется после всех существующих двойников.

  • Здесь – если правило здесь, оно добавляется в текущей позиции относительно существующих близнецов, которые могут быть первыми, последними или где угодно.

Первый – если правило является первым, новый сегмент добавляется перед любыми существующими близнецами.

Последний – если правило является последним, новый сегмент добавляется после всех существующих двойников.

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

Коды состояния

В следующей таблице показаны соответствующие коды состояния после вызова ISRT.

S.No Код состояния и описание
1

пространства

Успешный звонок

2

GE

Используются несколько SSA, и DL / I не может удовлетворить вызов с указанным путем.

3

II

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

4

LB / LC LD / LE

Мы получаем эти коды состояния при обработке загрузки. В большинстве случаев они указывают, что вы не вставляете сегменты в точной иерархической последовательности.

пространства

Успешный звонок

GE

Используются несколько SSA, и DL / I не может удовлетворить вызов с указанным путем.

II

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

LB / LC LD / LE

Мы получаем эти коды состояния при обработке загрузки. В большинстве случаев они указывают, что вы не вставляете сегменты в точной иерархической последовательности.

Get Hold Call

Обращает на себя внимание –

  • Существует три типа вызовов Get Hold, которые мы указываем в вызове DL / I:

    • Get Hold Unique (GHU)

    • Get Hold Next (GHN)

    • Держись дальше внутри родителя (GHNP)

  • Функция Hold указывает, что мы собираемся обновить сегмент после извлечения. Поэтому перед вызовом REPL или DLET должен быть выполнен успешный вызов удержания, сообщающий DL / I о намерении обновить базу данных.

Существует три типа вызовов Get Hold, которые мы указываем в вызове DL / I:

Get Hold Unique (GHU)

Get Hold Next (GHN)

Держись дальше внутри родителя (GHNP)

Функция Hold указывает, что мы собираемся обновить сегмент после извлечения. Поэтому перед вызовом REPL или DLET должен быть выполнен успешный вызов удержания, сообщающий DL / I о намерении обновить базу данных.

REPL Call

Обращает на себя внимание –

  • После успешного вызова удержания мы выполняем вызов REPL, чтобы обновить вхождение сегмента.

  • Мы не можем изменить длину сегмента с помощью вызова REPL.

  • Мы не можем изменить значение ключевого поля с помощью вызова REPL.

  • Мы не можем использовать квалифицированный SSA с вызовом REPL. Если мы укажем квалифицированный SSA, вызов не будет выполнен.

После успешного вызова удержания мы выполняем вызов REPL, чтобы обновить вхождение сегмента.

Мы не можем изменить длину сегмента с помощью вызова REPL.

Мы не можем изменить значение ключевого поля с помощью вызова REPL.

Мы не можем использовать квалифицированный SSA с вызовом REPL. Если мы укажем квалифицированный SSA, вызов не будет выполнен.

CALL 'CBLTDLI' USING DLI-GHU
                     PCB-NAME
                     IO-AREA
                     LIBRARY-SSA
                     BOOKS-SSA
                     ENGINEERING-SSA
                     IT-SSA.
                     
*Move the values which you want to update in IT segment occurrence*

CALL CBLTDLI USING DLI-REPL
                     PCB-NAME
                     IO-AREA.

Приведенный выше пример обновляет вхождение сегмента IT с помощью вызова REPL. Сначала мы запускаем вызов GHU, чтобы получить вхождение сегмента, которое мы хотим обновить. Затем мы выполняем вызов REPL, чтобы обновить значения этого сегмента.

DLET Call

Обращает на себя внимание –

  • Вызов DLET работает так же, как и вызов REPL.

  • После успешного вызова get hold мы выполняем вызов DLET, чтобы удалить вхождение сегмента.

  • Мы не можем использовать квалифицированный SSA с вызовом DLET. Если мы укажем квалифицированный SSA, вызов не будет выполнен.

Вызов DLET работает так же, как и вызов REPL.

После успешного вызова get hold мы выполняем вызов DLET, чтобы удалить вхождение сегмента.

Мы не можем использовать квалифицированный SSA с вызовом DLET. Если мы укажем квалифицированный SSA, вызов не будет выполнен.

CALL 'CBLTDLI' USING DLI-GHU
                     PCB-NAME
                     IO-AREA
                     LIBRARY-SSA
                     BOOKS-SSA
                     ENGINEERING-SSA
                     IT-SSA.
                     
CALL CBLTDLI USING DLI-DLET
                     PCB-NAME
                     IO-AREA.

Приведенный выше пример удаляет вхождение сегмента IT с помощью вызова DLET. Сначала мы вызываем вызов GHU, чтобы получить вхождение сегмента, которое мы хотим удалить. Затем мы запускаем вызов DLET для обновления значений этого сегмента.

Коды состояния

В следующей таблице показаны соответствующие коды состояния после вызова REPL или DLET.

пространства

Успешный звонок

AJ

Квалифицированный SSA, используемый для вызовов REPL или DLET.

диджей

Программа выдает вызов замены без непосредственного вызова удержания вызова.

DA

Программа вносит изменения в ключевое поле сегмента перед выполнением вызова REPL или DLET.