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:
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 ...
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 ........
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.