IMS DB - SSA
SSA significa Segment Search Arguments. SSA é usado para identificar a ocorrência do segmento que está sendo acessada. É um parâmetro opcional. Podemos incluir qualquer número de SSAs dependendo do requisito. Existem dois tipos de SSAs -
- SSA não qualificado
- SSA qualificado
SSA não qualificado
Um SSA não qualificado fornece o nome do segmento que está sendo usado na chamada. A seguir está a sintaxe de um SSA não qualificado -
01 UNQUALIFIED-SSA.
05 SEGMENT-NAME PIC X(8).
05 FILLER PIC X VALUE SPACE.
Os pontos principais do SSA não qualificado são os seguintes -
Um SSA básico não qualificado tem 9 bytes de comprimento.
Os primeiros 8 bytes contêm o nome do segmento que está sendo usado para processamento.
O último byte sempre contém espaço.
DL / I usa o último byte para determinar o tipo de SSA.
Para acessar um determinado segmento, mova o nome do segmento no campo SEGMENT-NAME.
As imagens a seguir mostram as estruturas de SSAs não qualificados e qualificados -
SSA qualificado
Um SSA qualificado fornece o tipo de segmento com a ocorrência de banco de dados específica de um segmento. A seguir está a sintaxe de um SSA qualificado -
01 QUALIFIED-SSA.
05 SEGMENT-NAME PIC X(8).
05 FILLER PIC X(01) VALUE '('.
05 FIELD-NAME PIC X(8).
05 REL-OPR PIC X(2).
05 SEARCH-VALUE PIC X(n).
05 FILLER PIC X(n+1) VALUE ')'.
Os pontos-chave do SSA qualificado são os seguintes -
Os primeiros 8 bytes de um SSA qualificado contêm o nome do segmento que está sendo usado para processamento.
O nono byte é um parêntese esquerdo '('.
Os próximos 8 bytes a partir da décima posição especificam o nome do campo que queremos pesquisar.
Após o nome do campo, na 18 ª e 19 ª posições, especificamos de dois caracteres código de operador relacional.
Então especificamos o valor do campo e no último byte, há um parêntese direito ')'.
A tabela a seguir mostra os operadores relacionais usados em um SSA qualificado.
Operador Relacional | Símbolo | Descrição |
---|---|---|
EQ | = | Igual |
NE | ~ = ˜ | Não igual |
GT | > | Maior que |
GE | > = | Maior ou igual |
LT | << | Menor que |
LE | <= | Menor ou igual |
Códigos de Comando
Os códigos de comando são usados para aprimorar a funcionalidade das chamadas DL / I. Os códigos de comando reduzem o número de chamadas DL / I, tornando os programas simples. Além disso, melhora o desempenho à medida que o número de chamadas é reduzido. A imagem a seguir mostra como os códigos de comando são usados em SSAs não qualificados e qualificados -
Os pontos-chave dos códigos de comando são os seguintes -
Para utilizar os códigos de comando, especificar um asterisco na 9 th posição da SSA, como mostrado na imagem acima.
O código de comando é codificado na décima posição.
De 10 ª posição em diante, DL / I considera todos os caracteres sejam códigos de comando até encontrar um espaço para uma SSA não qualificado e um parêntese esquerdo para um SSA qualificado.
A tabela a seguir mostra a lista de códigos de comando usados em SSA -
Código de Comando | Descrição |
---|---|
C | Chave Concatenada |
D | Path Call |
F | Primeira Ocorrência |
eu | Última Ocorrência |
N | Ignorar chamada de caminho |
P | Definir parentesco |
Q | Segmento de enfileiramento |
você | Manter posição neste nível |
V | Mantenha a posição neste e em todos os níveis acima |
- | Código de Comando Nulo |
Múltiplas Qualificações
Os pontos fundamentais de múltiplas qualificações são os seguintes -
Múltiplas qualificações são necessárias quando precisamos usar duas ou mais qualificações ou campos para comparação.
Usamos operadores booleanos como AND e OR para conectar duas ou mais qualificações.
Várias qualificações podem ser usadas quando desejamos processar um segmento com base em uma gama de valores possíveis para um único campo.
A seguir está a sintaxe de Qualificações Múltiplas -
01 QUALIFIED-SSA.
05 SEGMENT-NAME PIC X(8).
05 FILLER PIC X(01) VALUE '('.
05 FIELD-NAME1 PIC X(8).
05 REL-OPR PIC X(2).
05 SEARCH-VALUE1 PIC X(m).
05 MUL-QUAL PIC X VALUE '&'.
05 FIELD-NAME2 PIC X(8).
05 REL-OPR PIC X(2).
05 SEARCH-VALUE2 PIC X(n).
05 FILLER PIC X(n+1) VALUE ')'.
MUL-QUAL é um termo curto para MULtiple QUALIification no qual podemos fornecer operadores booleanos como AND ou OR.