Ims-db-data-manipulation

提供:Dev Guides
移動先:案内検索

IMS DB-データ操作

IMS DL/I呼び出しで使用されるさまざまなデータ操作方法は次のとおりです-

  • ISRTコール
  • 保留コールを取得
  • REPLコール
  • DLETコール

データ操作関数の呼び出しを理解するために、次のIMSデータベース構造を考えてみましょう-

IMS DATABASE

ISRTコール

注意点-

  • ISRT呼び出しは挿入呼び出しとして知られ、データベースにセグメントオカレンスを追加するために使用されます。
  • ISRT呼び出しは、新しいデータベースのロードに使用されます。
  • セグメント記述フィールドにデータがロードされると、ISRT呼び出しを発行します。
  • DL/Iがセグメントオカレンスを配置する場所を知るために、非修飾または修飾SSAを呼び出しで指定する必要があります。
  • コールでは、非修飾SSAと修飾SSAの両方の組み合わせを使用できます。 上記のすべてのレベルに対して、認定されたSSAを指定できます。 私たちは次の例を考えてみましょう-
CALL 'CBLTDLI' USING DLI-ISRT
                     PCB-NAME
                     IO-AREA
                     LIBRARY-SSA
                     BOOKS-SSA
                     UNQUALIFIED-ENGINEERING-SSA

上記の例は、修飾SSAと非修飾SSAの組み合わせを提供することによりISRT呼び出しを発行していることを示しています。

挿入する新しいセグメントに一意のキーフィールドがある場合、適切な位置に追加されます。 キーフィールドが一意でない場合、データベース管理者によって定義されたルールによって追加されます。

キーフィールドを指定せずにISRT呼び出しを発行すると、挿入ルールは、既存のツインセグメントに対してセグメントを配置する場所を指示します。 以下に挿入ルールがあります-

  • 最初-ルールが最初の場合、既存の双子の前に新しいセグメントが追加されます。
  • 最後-ルールが最後の場合、既存のすべての双子の後に新しいセグメントが追加されます。
  • ここ-ルールがここにある場合、既存の双子に対して現在の位置に追加されます。双子は最初、最後、またはどこでもかまいません。

状態コード

次の表は、ISRT呼び出し後の関連するステータスコードを示しています-

S.No Status Code & Description
1

Spaces

成功した呼び出し

2

GE

複数のSSAが使用され、DL/Iは指定されたパスで呼び出しを満たすことができません。

3

II

データベースにすでに存在するセグメントオカレンスを追加してみてください。

4

LB/LC LD/LE

ロード処理中にこれらのステータスコードを取得します。 ほとんどの場合、正確な階層シーケンスでセグメントを挿入していないことを示しています。

保留コールを取得

注意点-

  • DL/I呼び出しで指定するGet Hold呼び出しには3つのタイプがあります。
  • ホールドユニーク(GHU)
  • ホールドネクスト(GHN)
  • 親内で次に保留(GHNP)
  • ホールド機能は、取得後にセグメントを更新することを指定します。 したがって、REPLまたはDLET呼び出しの前に、データベースを更新する意図をDL/Iに伝える正常な保留呼び出しを発行する必要があります。

REPLコール

注意点-

  • get hold呼び出しが成功した後、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呼び出しと同じように機能します。
  • 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.

上記の例では、DLET呼び出しを使用してITセグメントの出現を削除します。 まず、GHU呼び出しを発行して、削除するセグメントオカレンスを取得します。 次に、DLET呼び出しを発行して、そのセグメントの値を更新します。

状態コード

次の表は、REPLまたはDLET呼び出し後の関連するステータスコードを示しています-

S.No Status Code & Description
1
  • Spaces*

成功した呼び出し

2

AJ

REPLまたはDLET呼び出しで使用される認定SSA。

3

DJ

プログラムは、直前のget hold呼び出しなしでreplace呼び出しを発行します。

4

DA

プログラムは、REPLまたはDLET呼び出しを発行する前に、セグメントのキーフィールドを変更します