IMS DB - Datenmanipulation
Die verschiedenen Datenmanipulationsmethoden, die in IMS DL / I-Aufrufen verwendet werden, sind wie folgt:
- ISRT-Anruf
- Halten Sie Anrufe
- REPL Anruf
- DLET-Aufruf
Betrachten wir die folgende IMS-Datenbankstruktur, um die Aufrufe der Datenmanipulationsfunktion zu verstehen:
ISRT-Anruf
Zu beachtende Punkte -
Der ISRT-Aufruf wird als Insert-Aufruf bezeichnet, mit dem einer Datenbank Segmentvorkommen hinzugefügt werden.
ISRT-Aufrufe werden zum Laden einer neuen Datenbank verwendet.
Wir geben einen ISRT-Aufruf aus, wenn ein Segmentbeschreibungsfeld mit Daten geladen wird.
Im Aufruf muss eine nicht qualifizierte oder qualifizierte SSA angegeben werden, damit der DL / I weiß, wo ein Segmentvorkommen platziert werden soll.
Wir können eine Kombination aus nicht qualifiziertem und qualifiziertem SSA für den Anruf verwenden. Für alle oben genannten Ebenen kann eine qualifizierte SSA angegeben werden. Betrachten wir das folgende Beispiel:
CALL 'CBLTDLI' USING DLI-ISRT
PCB-NAME
IO-AREA
LIBRARY-SSA
BOOKS-SSA
UNQUALIFIED-ENGINEERING-SSA
Das obige Beispiel zeigt, dass wir einen ISRT-Aufruf ausgeben, indem wir eine Kombination aus qualifizierten und nicht qualifizierten SSAs bereitstellen.
Wenn ein neues Segment, das wir einfügen, ein eindeutiges Schlüsselfeld hat, wird es an der richtigen Position hinzugefügt. Wenn das Schlüsselfeld nicht eindeutig ist, wird es durch die von einem Datenbankadministrator definierten Regeln hinzugefügt.
Wenn wir einen ISRT-Aufruf ohne Angabe eines Schlüsselfelds ausgeben, gibt die Einfügeregel an, wo die Segmente relativ zu vorhandenen Zwillingssegmenten platziert werden sollen. Unten sind die Einfügeregeln angegeben -
First - Wenn die Regel an erster Stelle steht, wird das neue Segment vor vorhandenen Zwillingen hinzugefügt.
Last - Wenn die Regel die letzte ist, wird das neue Segment nach allen vorhandenen Zwillingen hinzugefügt.
Here - Wenn die Regel hier ist, wird sie an der aktuellen Position relativ zu vorhandenen Zwillingen hinzugefügt, die zuerst, zuletzt oder irgendwo sein können.
Statuscodes
Die folgende Tabelle zeigt die relevanten Statuscodes nach einem ISRT-Aufruf -
S.No. | Statuscode & Beschreibung |
---|---|
1 | Spaces Erfolgreicher Anruf |
2 | GE Es werden mehrere SSAs verwendet, und der DL / I kann den Anruf nicht mit dem angegebenen Pfad erfüllen. |
3 | II Versuchen Sie, ein Segmentvorkommen hinzuzufügen, das bereits in der Datenbank vorhanden ist. |
4 | LB / LC LD / LE Wir erhalten diese Statuscodes während der Ladeverarbeitung. In den meisten Fällen weisen sie darauf hin, dass Sie die Segmente nicht in einer exakten hierarchischen Reihenfolge einfügen. |
Halten Sie einen Anruf
Zu beachtende Punkte -
Es gibt drei Arten von Get Hold-Anrufen, die wir in einem DL / I-Aufruf angeben:
Get Hold Unique (GHU)
Als nächstes festhalten (GHN)
Als nächstes in Parent (GHNP) festhalten
Die Hold-Funktion gibt an, dass das Segment nach dem Abrufen aktualisiert wird. Vor einem REPL- oder DLET-Aufruf muss daher ein erfolgreicher Hold-Aufruf ausgegeben werden, der dem DL / I die Absicht mitteilt, die Datenbank zu aktualisieren.
REPL Anruf
Zu beachtende Punkte -
Nach einem erfolgreichen Get Hold Hold-Aufruf geben wir einen REPL-Aufruf aus, um ein Segmentvorkommen zu aktualisieren.
Wir können die Länge eines Segments nicht mit einem REPL-Aufruf ändern.
Wir können den Wert eines Schlüsselfelds nicht mit einem REPL-Aufruf ändern.
Wir können keine qualifizierte SSA mit einem REPL-Aufruf verwenden. Wenn wir einen qualifizierten SSA angeben, schlägt der Aufruf fehl.
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.
Das obige Beispiel aktualisiert das Auftreten von IT-Segmenten mithilfe eines REPL-Aufrufs. Zuerst geben wir einen GHU-Aufruf aus, um das Segmentvorkommen abzurufen, das wir aktualisieren möchten. Anschließend geben wir einen REPL-Aufruf aus, um die Werte dieses Segments zu aktualisieren.
DLET-Aufruf
Zu beachtende Punkte -
Der DLET-Aufruf funktioniert ähnlich wie ein REPL-Aufruf.
Nach einem erfolgreichen Get-Hold-Aufruf geben wir einen DLET-Aufruf aus, um ein Segmentvorkommen zu löschen.
Wir können keinen qualifizierten SSA mit einem DLET-Aufruf verwenden. Wenn wir einen qualifizierten SSA angeben, schlägt der Aufruf fehl.
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.
Im obigen Beispiel wird das Auftreten von IT-Segmenten mithilfe eines DLET-Aufrufs gelöscht. Zuerst geben wir einen GHU-Aufruf aus, um das Segmentvorkommen abzurufen, das wir löschen möchten. Anschließend geben wir einen DLET-Aufruf aus, um die Werte dieses Segments zu aktualisieren.
Statuscodes
Die folgende Tabelle zeigt die relevanten Statuscodes nach einem REPL- oder DLET-Aufruf -
S.No. | Statuscode & Beschreibung |
---|---|
1 | Spaces Erfolgreicher Anruf |
2 | AJ Qualifizierter SSA, der beim REPL- oder DLET-Aufruf verwendet wird. |
3 | DJ Das Programm gibt einen Ersetzungsaufruf ohne einen unmittelbar vorhergehenden Abruf aus. |
4 | DA Das Programm ändert das Schlüsselfeld des Segments, bevor der REPL- oder DLET-Aufruf ausgegeben wird |