Verificando Retornos para SELECT

Se uma instrução SELECT retornar sem dados ou sem dados adicionais, isso será tratado como uma situação normal e nenhum código de erro será definido em SQLCODE. Isso ocorre independentemente da definição das propriedades Emitir Exceção sobre Erro do Banco de Dados e Tratar Avisos Como Erros no nó atual.

Se você precisar reconhecer se uma instrução SELECT retornou sem dados, será necessário incluir ESQL que verifica o que foi retornado. Isso pode ser feito de inúmeras maneiras:

  1. EXISTS

    Isso retorna um valor booleano que indica se uma função SELECT retornou um ou mais valores (TRUE) ou nenhum (FALSE).

    IF EXISTS(SELECT T.MYCOL FROM Database.MYTABLE) THEN
    ...
  2. CARDINALITY

    Se você espera uma matriz em resposta a um SELECT, poderá utilizar CARDINALITY para calcular quantas entradas foram recebidas.

    SET OutputRoot.XML.Testcase.Results[] = (
        SELECT T.MYCOL FROM Database.MYTABLE)
    ......
    IF CARDINALITY (OutputRoot.XML.Testcase.Results[]) > 0 THEN
    ........
  3. IS NULL

    Se você utilizou as palavras-chave THE e ITEM em sua instrução SELECT, será retornado um valor escalar. Se nenhuma linha foi retornada, o valor definido será NULL. Entretanto, é possível que o valor NULL tenha sido contido dentro da coluna e você pode desejar distinguir entre esses dois casos.

    Para fazer a inclusão de COALESCE na instrução SELECT, por exemplo:

    SET OutputRoot.XML.Testcase.Results VALUE = THE (
       SELECT ITEM COALESCE(T.MYCOL, 'WAS NULL')
       FROM Database.MYTABLE);

    Se isso retornar uma cadeia de caracteres WAS NULL, indicará que a coluna continha NULL, e não que nenhuma linha foi retornada.

Nos releases anteriores, um SQLCODE de 100 era definido na maioria dos casos se nenhum dado, ou nenhum dado adicional, fosse retornado. Uma exceção foi levantada pelo intermediário, se você escolheu manipular os erros do banco de dados no fluxo de mensagens.

Conceitos relacionados
Visão Geral de Fluxos de Mensagens
Estrutura em Árvore ExceptionList
Visão Geral do ESQL
Modelagem de Mensagens
Tarefas relacionadas
Projetando um Fluxo de Mensagens
Definindo o Conteúdo do Fluxo de Mensagens
Tratando Erros em Fluxos de Mensagens
Gerenciando Arquivos ESQL
Referências relacionadas
Nó Compute
Nó Database
Nó Filter
Referência de ESQL
Instrução SET
Operadores de Comparação Simples do ESQL
Função CARDINALITY
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ac17020_