Verificando Retornos para SELECT

Se uma função SELECT não retornar dados, ou não retornar dados adicionais, este resultado será manipulado como uma situação normal e nenhum código de erro será configurado no SQLCODE, independentemente da configuração das propriedades Emitir Exceção em Erro do Banco de Dados e Tratar Avisos como Erros no nó atual.

Para reconhecer que uma função SELECT não retornou dados, inclua ESQL que verifique o que foi retornado. É possível utilizar vários métodos:

  1. EXISTS

    Esta ESQL 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.XMLNS.Testcase.Results[] = (
        SELECT T.MYCOL FROM Database.MYTABLE)
    ......
    IF CARDINALITY (OutputRoot.XMLNS.Testcase.Results[])> 0 THEN
    ........
  3. IS NULL

    Se você utilizou as palavras-chave THE ou ITEM em sua funçã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.

    Distinguindo entre casos, incluindo COALESCE na função SELECT, por exemplo:

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

    Se este exemplo retornar a cadeia de caracteres WAS NULL, isto indica que a coluna continha NULL, e que não foi retornada nenhuma linha.

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 da Lista de Exceções
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ó Banco de Dados
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

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
Última atualização : 2009-02-13 16:11:49

ac17020_