IMS DB - Manipulação de Dados
Os diferentes métodos de manipulação de dados usados em chamadas IMS DL / I são os seguintes -
- Chamada ISRT
- Receber chamadas em espera
- REPL Call
- DLET Call
Vamos considerar a seguinte estrutura de banco de dados IMS para entender as chamadas de função de manipulação de dados -
Chamada ISRT
Pontos a serem observados -
A chamada ISRT é conhecida como chamada Insert, que é usada para adicionar ocorrências de segmento a um banco de dados.
As chamadas ISRT são usadas para carregar um novo banco de dados.
Emitimos uma chamada ISRT quando um campo de descrição de segmento é carregado com dados.
Um SSA não qualificado ou qualificado deve ser especificado na chamada para que o DL / I saiba onde colocar uma ocorrência de segmento.
Podemos usar uma combinação de SSA não qualificado e qualificado na chamada. Um SSA qualificado pode ser especificado para todos os níveis acima. Vamos considerar o seguinte exemplo -
CALL 'CBLTDLI' USING DLI-ISRT
PCB-NAME
IO-AREA
LIBRARY-SSA
BOOKS-SSA
UNQUALIFIED-ENGINEERING-SSA
O exemplo acima mostra que estamos emitindo uma chamada ISRT fornecendo uma combinação de SSAs qualificados e não qualificados.
Quando um novo segmento que estamos inserindo tem um campo-chave exclusivo, ele é adicionado na posição adequada. Se o campo-chave não for exclusivo, ele será adicionado pelas regras definidas por um administrador de banco de dados.
Quando emitimos uma chamada ISRT sem especificar um campo-chave, a regra de inserção informa onde colocar os segmentos em relação aos segmentos gêmeos existentes. A seguir estão as regras de inserção -
First - Se a regra for a primeira, o novo segmento será adicionado antes de quaisquer gêmeos existentes.
Last - Se a regra for a última, o novo segmento será adicionado após todos os gêmeos existentes.
Here - Se a regra estiver aqui, ela será adicionada na posição atual em relação aos gêmeos existentes, que podem ser o primeiro, o último ou em qualquer lugar.
Códigos de status
A tabela a seguir mostra os códigos de status relevantes após uma chamada ISRT -
S.Não | Código de status e descrição |
---|---|
1 | Spaces Chamada bem sucedida |
2 | GE Vários SSAs são usados e o DL / I não pode atender à chamada com o caminho especificado. |
3 | II Tente adicionar uma ocorrência de segmento que já está presente no banco de dados. |
4 | LB / LC LD / LE Recebemos esses códigos de status durante o processamento do carregamento. Na maioria dos casos, eles indicam que você não está inserindo os segmentos em uma seqüência hierárquica exata. |
Chame em espera
Pontos a serem observados -
Existem três tipos de chamada Get Hold que especificamos em uma chamada DL / I:
Get Hold Unique (GHU)
Get Hold Next (GHN)
Get Hold Next dentro do Parent (GHNP)
A função Hold especifica que vamos atualizar o segmento após a recuperação. Portanto, antes de uma chamada REPL ou DLET, uma chamada em espera bem-sucedida deve ser emitida informando ao DL / I a intenção de atualizar o banco de dados.
REPL Call
Pontos a serem observados -
Depois de obter uma chamada em espera com êxito, emitimos uma chamada REPL para atualizar uma ocorrência de segmento.
Não podemos alterar o comprimento de um segmento usando uma chamada REPL.
Não podemos alterar o valor de um campo-chave usando uma chamada REPL.
Não podemos usar um SSA qualificado com uma chamada REPL. Se especificarmos um SSA qualificado, a chamada falhará.
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.
O exemplo acima atualiza a ocorrência do segmento de TI usando uma chamada REPL. Primeiro, emitimos uma chamada GHU para obter a ocorrência do segmento que desejamos atualizar. Em seguida, emitimos uma chamada REPL para atualizar os valores desse segmento.
DLET Call
Pontos a serem observados -
A chamada DLET funciona da mesma maneira que uma chamada REPL.
Depois de obter uma chamada em espera com êxito, emitimos uma chamada DLET para excluir uma ocorrência de segmento.
Não podemos usar um SSA qualificado com uma chamada DLET. Se especificarmos um SSA qualificado, a chamada falhará.
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.
O exemplo acima exclui a ocorrência do segmento de TI usando uma chamada DLET. Primeiro, emitimos uma chamada GHU para obter a ocorrência do segmento que desejamos excluir. Em seguida, emitimos uma chamada DLET para atualizar os valores desse segmento.
Códigos de status
A tabela a seguir mostra os códigos de status relevantes após uma chamada REPL ou DLET -
S.Não | Código de status e descrição |
---|---|
1 | Spaces Chamada bem sucedida |
2 | AJ SSA qualificado usado em chamadas REPL ou DLET. |
3 | DJ O programa emite uma chamada de substituição sem uma chamada de espera imediatamente anterior. |
4 | DA O programa faz uma alteração no campo-chave do segmento antes de emitir a chamada REPL ou DLET |