- 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 - 資料操作
在 IMS DL/I 呼叫中使用的不同資料操作方法如下:
- ISRT 呼叫
- 獲取保持呼叫
- REPL 呼叫
- DLET 呼叫
讓我們考慮以下 IMS 資料庫結構來了解資料操作函式呼叫:
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 呼叫之前更改了段的鍵欄位。 |