Quarta, Dezembro 13, 2017

A instrução SELECT INTO produz uma tabela de resultados que consiste em no máximo uma linha e atribui os valores nessa linha a variáveis.

Se a tabela estiver vazia, a instrução atribui a SQLCODE +100 e '02000' a SQLSTATE e não atribui valores às variáveis.

Se mais de uma linha satisfaz a condição de pesquisa, o processamento da instrução é encerrado e ocorre um erro.

 

INVOCATION

Essa instrução só pode ser incorporada em um programa aplicativo. É uma instrução executável que não pode ser preparada dinamicamente. Não deve ser especificado no REXX.

 

Autorização

Os privilégios detidos pelo ID de autorização da declaração devem incluir pelo menos uma das seguintes opções:

  • Para cada tabela ou visualização identificada na instrução,
    • O privilégio SELECT na tabela ou exibição, e
    • A autoridade do sistema * EXECUTE na biblioteca que contém a tabela ou exibição
  • Autoridade administrativa

 

Sintaxe

                        .-,--------.
                        V          |
>>-select-clause--INTO----variable-+---------------------------->
 
>--from-clause--+--------------+--+-----------------+--+---------------+-->
                '-where-clause-'  '-group-by-clause-'  '-having-clause-'
 
                                               (1)
>--+-----------------+--+--------------------+-------+------------------+-><
   '-order-by-clause-'  '-fetch-first-clause-'       '-isolation-clause-'
 

 

notas:

Apenas uma linha pode ser especificada no fetch-first-clause.

 

Descrição

A tabela de resultados é derivado através da avaliação do ISOLATION, FROM, WHERE, GROUP BY, HAVING, ORDER BY, FETCH FIRST, e SELECT, nesta ordem.

 

INTO variável

Identifica uma ou mais estruturas de host ou variáveis ​​que devem ser declaradas no programa de acordo com as regras para declarar estruturas e variáveis ​​de host. Na forma operacional da cláusula INTO, uma referência a uma estrutura de host é substituída por uma referência a cada uma de suas variáveis. O primeiro valor na linha do resultado é atribuído à primeira variável na lista, o segundo valor à segunda variável e assim por diante. O tipo de dados de cada variável deve ser compatível com sua coluna correspondente.

 

Nota:

Atribuição de variável: Cada atribuição a uma variável é realizada de acordo com as regras de atribuição de recuperação descritos em Atribuições e comparações. Se o número de variáveis ​​for menor que o número de valores na linha, um aviso SQL (SQLSTATE 01503) é retornado (e o campo SQLWARN3 do SQLCA é definido como 'W'). Observe que não há nenhum aviso se houver mais variáveis ​​do que o número de colunas de resultado. Se um valor for nulo, uma variável de indicador deve ser fornecida para esse valor.

Se a variável especificada é caractere e não é grande o suficiente para conter o resultado, um aviso (SQLSTATE 01004) é retornado (e 'W' é atribuído a SQLWARN1 no SQLCA). O comprimento real do resultado pode ser retornado na variável de indicador associada à variável, se for fornecida uma variável de indicador. Para mais informações, consulte Referências a variáveis .

Se ocorrer um erro de atribuição, o valor dessa variável e quaisquer variáveis ​​a seguir é imprevisível. Todos os valores que já foram atribuídos a variáveis ​​permanecem atribuídos.

Várias atribuições: Se mais de uma variável é especificado na cláusula INTO, a consulta é completamente avaliado antes as atribuições são executadas. Assim, as referências a uma variável da lista de seleção são sempre o valor da variável antes de qualquer atribuição na instrução SELECT INTO.

Tabela de resultados vazio: Se a tabela de resultados está vazio, a declaração atribui '02000' para a variável SQLSTATE e não atribuir valores às variáveis.

Tabelas de resultados com mais de uma linha: Se mais de uma linha satisfaz a condição de pesquisa, processamento de declaração é encerrado e um erro é retornado (SQLSTATE 21000). Se ocorrer um erro porque a tabela de resultados tem mais de uma linha, os valores podem ou não ser atribuídos às variáveis. Se os valores forem atribuídos às variáveis, a linha que é a origem dos valores é indefinida e não previsível.

O resultado da avaliação considerações coluna: Quando um valor de tempo é seleccionado, se o formato ISO, EUR ou JIS é usado, o comprimento da variável não deve ser inferior a 5. Se o comprimento é de 5, 6 ou 7, a parte segundo Do tempo é omitido do resultado, um aviso (SQLSTATE 01004) é retornado (e 'W' é atribuído a SQLWARN1 no SQLCA). Neste caso, a parte de segundos do tempo é atribuída à variável de indicador se um for fornecido e, se o comprimento for 6 ou 7, preenchimento em branco ocorre para que o valor seja uma representação de cadeia válida de um tempo.

Se ocorrer um erro ao avaliar uma coluna de resultado na lista SELECT de uma instrução SELECT INTO, como resultado de uma expressão aritmética (como divisão por zero ou overflow) ou um erro de conversão numérica ou de caracteres, o resultado é o valor nulo . Como em qualquer outro caso de um valor nulo, uma variável de indicador deve ser fornecida. O valor da variável é indefinido. Neste caso, no entanto, a variável de indicador é definida para o valor de -2. O processamento da instrução continua e um aviso é retornado. Se uma variável de indicador não for fornecida, um erro é retornado e não mais valores são atribuídos a variáveis. É possível que alguns valores já tenham sido atribuídos a variáveis ​​e permanecerão atribuídos quando o erro for retornado.

 

Exemplos:

Usando uma instrução programa COBOL, coloque o salário máximo (SALARY) da tabela EMPLOYEE para a variável do host MAX-SALARY (DECIMAL (9,2)).

   EXEC SQL  SELECT MAX(SALARY)
               INTO :MAX-SALARY
               FROM EMPLOYEE WITH CS
   END-EXEC.

  

A Historia do cobol

A Historia do cobol

COBOL significa Common Business Oriented Language, isto é, Linguagem Comum Orientada para o Comércio. O Cobol é um subconjunto de palavras da língua inglesa, ou seja, um número limitado de palavras inglesas sujeita a uma sintaxe própria. É uma linguagem que lida com problemas comerciais, envolvendo arquivos de dados de apreciáveis proporções (Seqüências/Vsam/Banco de dados DB2).   História: Criado por um comitê de investigadores de várias instituições civis e governamentais durante o segundo semestre de 1959. As especificações eram em grande parte inspiradas na linguagem de programação FLOW-MATIC inventada pela Grace Hopper - referida como "a mãe da língua COBOL." Em 8 de abril de...

Vagas

Em breve estaremos divulgando vagas de COBOL/CICS/DB2

Camisetas

IDENTIFICATION DIVISION

IDENTIFICATION DIVISION: Possui informações documentais, como nome do programa, quem o codificou e quando essa codificação foi realizada.    PROGRAM-ID nome do programa. (Obrigatório) AUTHOR nome do desenvolvedor. (Obrigatório) INSTALLATION nome da empresa ou local de geração do...

ENVIRONMENT DIVISION

ENVIRONMENT DIVISION: é a segunda divisão de um programa COBOL. Descreve o computador e os periféricos que serão utilizados pelo programa, fazendo ligação com o ambiente operacional onde o programa...

DATA DIVISION

DATA DIVISION: É a terceira divisão de um programa COBOL, descreve os arquivos de entrada e saída que serão usadas pelo programa. Também define as áreas de trabalho e constantes...

PROCEDURE DIVISION

PROCEDURE DIVISION: Contém o código que irá manipular os dados descritos na DATA DIVISION. É nesta divisão que o desenvolvedor descreverá a lógica do programa. Consiste em instruções executáveis ​​usando...

Comandos