DB IMS - Manipolazione dei dati
I diversi metodi di manipolazione dei dati utilizzati nelle chiamate IMS DL / I sono i seguenti:
- Bando ISRT
- Ricevi chiamate in attesa
- Chiamata REPL
- Chiamata DLET
Consideriamo la seguente struttura del database IMS per comprendere le chiamate alla funzione di manipolazione dei dati:
Bando ISRT
Punti da notare -
La chiamata ISRT è nota come chiamata di inserimento che viene utilizzata per aggiungere occorrenze di segmento a un database.
Le chiamate ISRT vengono utilizzate per caricare un nuovo database.
Emettiamo una chiamata ISRT quando un campo di descrizione del segmento viene caricato con i dati.
Nella chiamata deve essere specificato un SSA non qualificato o qualificato in modo che il DL / I sappia dove posizionare l'occorrenza di un segmento.
Possiamo utilizzare una combinazione di SSA non qualificato e qualificato nella chiamata. È possibile specificare un SSA qualificato per tutti i livelli di cui sopra. Consideriamo il seguente esempio:
CALL 'CBLTDLI' USING DLI-ISRT
PCB-NAME
IO-AREA
LIBRARY-SSA
BOOKS-SSA
UNQUALIFIED-ENGINEERING-SSA
L'esempio sopra mostra che stiamo emettendo una chiamata ISRT fornendo una combinazione di SSA qualificati e non qualificati.
Quando un nuovo segmento che stiamo inserendo ha un campo chiave univoco, viene aggiunto nella posizione corretta. Se il campo chiave non è univoco, viene aggiunto dalle regole definite da un amministratore del database.
Quando emettiamo una chiamata ISRT senza specificare un campo chiave, la regola di inserimento indica dove posizionare i segmenti rispetto ai segmenti gemelli esistenti. Di seguito sono riportate le regole di inserimento:
First - Se la regola è prima, il nuovo segmento viene aggiunto prima di eventuali gemelli esistenti.
Last - Se la regola è l'ultima, il nuovo segmento viene aggiunto dopo tutti i gemelli esistenti.
Here - Se la regola è qui, viene aggiunta alla posizione corrente rispetto ai gemelli esistenti, che può essere il primo, l'ultimo o ovunque.
Codici di stato
La tabella seguente mostra i codici di stato rilevanti dopo una chiamata ISRT -
S.No | Codice di stato e descrizione |
---|---|
1 | Spaces Chiamata riuscita |
2 | GE Vengono utilizzati più SSA e il DL / I non è in grado di soddisfare la chiamata con il percorso specificato. |
3 | II Prova ad aggiungere una ricorrenza del segmento che è già presente nel database. |
4 | LB / LC LD / LE Otteniamo questi codici di stato durante l'elaborazione del caricamento. Nella maggior parte dei casi, indicano che non stai inserendo i segmenti in un'esatta sequenza gerarchica. |
Ricevi chiamata in attesa
Punti da notare -
Esistono tre tipi di chiamate in attesa che vengono specificate in una chiamata DL / I:
Ottieni Hold Unique (GHU)
Get Hold Next (GHN)
Get Hold Next within Parent (GHNP)
La funzione Hold specifica che aggiorneremo il segmento dopo il recupero. Pertanto, prima di una chiamata REPL o DLET, è necessario emettere una chiamata in attesa riuscita per comunicare al DL / I l'intenzione di aggiornare il database.
Chiamata REPL
Punti da notare -
Dopo una chiamata in attesa riuscita, emettiamo una chiamata REPL per aggiornare l'occorrenza di un segmento.
Non è possibile modificare la lunghezza di un segmento utilizzando una chiamata REPL.
Non è possibile modificare il valore di un campo chiave utilizzando una chiamata REPL.
Non possiamo utilizzare un SSA qualificato con una chiamata REPL. Se specifichiamo un SSA qualificato, la chiamata non riesce.
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.
L'esempio precedente aggiorna l'occorrenza del segmento IT utilizzando una chiamata REPL. Innanzitutto, emettiamo una chiamata GHU per ottenere l'occorrenza del segmento che vogliamo aggiornare. Quindi, emettiamo una chiamata REPL per aggiornare i valori di quel segmento.
Chiamata DLET
Punti da notare -
La chiamata DLET funziona in modo molto simile a una chiamata REPL.
Dopo una chiamata in attesa riuscita, emettiamo una chiamata DLET per eliminare l'occorrenza di un segmento.
Non è possibile utilizzare un SSA qualificato con una chiamata DLET. Se specifichiamo un SSA qualificato, la chiamata non riesce.
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.
L'esempio precedente elimina l'occorrenza del segmento IT utilizzando una chiamata DLET. Innanzitutto, emettiamo una chiamata GHU per ottenere l'occorrenza del segmento che vogliamo eliminare. Quindi, emettiamo una chiamata DLET per aggiornare i valori di quel segmento.
Codici di stato
La tabella seguente mostra i codici di stato rilevanti dopo una chiamata REPL o DLET -
S.No | Codice di stato e descrizione |
---|---|
1 | Spaces Chiamata riuscita |
2 | AJ SSA qualificato utilizzato su chiamate REPL o DLET. |
3 | DJ Il programma emette una chiamata sostitutiva senza una chiamata in attesa immediatamente precedente. |
4 | DA Il programma apporta una modifica al campo chiave del segmento prima di emettere la chiamata REPL o DLET |