IMS DB - 資料操作



在 IMS DL/I 呼叫中使用的不同資料操作方法如下:

  • ISRT 呼叫
  • 獲取保持呼叫
  • REPL 呼叫
  • DLET 呼叫

讓我們考慮以下 IMS 資料庫結構來了解資料操作函式呼叫:

IMS DATABASE

ISRT 呼叫

需要注意的幾點:

  • ISRT 呼叫被稱為插入呼叫,用於向資料庫新增段的出現。

  • ISRT 呼叫用於載入新的資料庫。

  • 當段描述欄位載入了資料時,我們發出 ISRT 呼叫。

  • 必須在呼叫中指定非限定的或限定的 SSA,以便 DL/I 知道將段的出現放置在何處。

  • 我們可以在呼叫中使用非限定和限定 SSA 的組合。可以為以上所有級別指定限定的 SSA。讓我們考慮以下示例:

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

以上示例顯示我們透過提供限定和非限定 SSA 的組合來發出 ISRT 呼叫。

當我們插入的新段具有唯一鍵欄位時,它將新增到適當的位置。如果鍵欄位不是唯一的,則它將根據資料庫管理員定義的規則新增。

當我們發出 ISRT 呼叫而不指定鍵欄位時,插入規則會告訴在現有孿生段相對於何處放置段。以下是插入規則:

  • 第一 - 如果規則是第一,則新段將新增到任何現有孿生段之前。

  • 最後 - 如果規則是最後,則新段將新增到所有現有孿生段之後。

  • 此處 - 如果規則是此處,則它將新增到相對於現有孿生段的當前位置,這可能是第一、最後或任何位置。

狀態程式碼

下表顯示 ISRT 呼叫後的相關狀態程式碼:

序號 狀態程式碼和描述
1

空格

呼叫成功

2

GE

使用了多個 SSA,並且 DL/I 無法使用指定的路徑滿足呼叫。

3

II

嘗試新增資料庫中已存在的段出現。

4

LB / LC LD / LE

我們在載入處理過程中獲得這些狀態程式碼。在大多數情況下,它們表示您沒有按照精確的分層順序插入段。

獲取保持呼叫

需要注意的幾點:

  • 我們在 DL/I 呼叫中指定三種類型的獲取保持呼叫

    • 獲取唯一保持 (GHU)

    • 獲取下一個保持 (GHN)

    • 獲取父級內的下一個保持 (GHNP)

  • 保持功能指定我們將更新檢索後的段。因此,在 REPL 或 DLET 呼叫之前,必須發出成功的保持呼叫以告知 DL/I 更新資料庫的意圖。

REPL 呼叫

需要注意的幾點:

  • 成功進行獲取保持呼叫後,我們發出 REPL 呼叫來更新段的出現。

  • 我們不能使用 REPL 呼叫更改段的長度。

  • 我們不能使用 REPL 呼叫更改鍵欄位的值。

  • 我們不能在 REPL 呼叫中使用限定的 SSA。如果我們指定限定的 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.

以上示例使用 REPL 呼叫更新 IT 段的出現。首先,我們發出 GHU 呼叫以獲取我們要更新的段的出現。然後,我們發出 REPL 呼叫來更新該段的值。

DLET 呼叫

需要注意的幾點:

  • DLET 呼叫的工作方式與 REPL 呼叫非常相似。

  • 成功進行獲取保持呼叫後,我們發出 DLET 呼叫來刪除段的出現。

  • 我們不能在 DLET 呼叫中使用限定的 SSA。如果我們指定限定的 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.

以上示例使用 DLET 呼叫刪除 IT 段的出現。首先,我們發出 GHU 呼叫以獲取我們要刪除的段的出現。然後,我們發出 DLET 呼叫來更新該段的值。

狀態程式碼

下表顯示 REPL 或 DLET 呼叫後的相關狀態程式碼:

序號 狀態程式碼和描述
1

空格

呼叫成功

2

AJ

在 REPL 或 DLET 呼叫中使用了限定的 SSA。

3

DJ

程式在沒有立即之前的獲取保持呼叫的情況下發出替換呼叫。

4

DA

程式在發出 REPL 或 DLET 呼叫之前更改了段的鍵欄位。

廣告
© . All rights reserved.