Controllo delle restituzioni di SELECT

Se un'istruzione SELECT non restituisce dati o non restituisce ulteriori dati, questa situazione viene considerata normale e non viene impostato alcun codice di errore in SQLCODE. Questo avviene indipendentemente dall'impostazione delle proprietà Genera eccezione in caso di errore del database e Valuta le avvertenze come errori nel nodo corrente.

Per riconoscere che un'istruzione SELECT non ha restituito dati, includere ESQL che controlli cosa è stato restituito. Questo si può fare in diversi modi:

  1. EXISTS

    Questa istruzione restituisce un valore booleano che indica se una funzione SELECT ha restituito uno o più valori (TRUE) oppure nessun valore (FALSE).

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

    Se si prevede un array in risposta a un'istruzione SELECT, è possibile utilizzare CARDINALITY per calcolare quante voci siano state ricevute.

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

    Se sono state utilizzate le parole chiave THE o ITEM nell'istruzione SELECT, viene restituito un valore scalare. Se non è restituita alcuna riga, l'impostazione del valore è NULL. Tuttavia, è possibile che il valore NULL sia contenuto nella colonna e si potrebbe voler distinguere tra questi due casi.

    Per fare ciò includere COALESCE nell'istruzione SELECT, ad esempio:

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

    Se questa istruzione restituisce una stringa di caratteri WAS NULL, questo indica che la colonna conteneva il valore NULL e che non sono state restituite righe.

Nei rilasci precedenti, nella maggior parte dei casi un SQLCODE era impostato su 100 se non venivano restituiti dati o ulteriori dati. Il broker generava un'eccezione se si era scelto di gestire gli errori di database nel flusso di messaggi.

Concetti correlati
Panoramica dei flussi di messaggi
Struttura ad albero ExceptionList
Panoramica di ESQL
Creazione di modelli di messaggio
Attività correlate
Progettazione di un flusso di messaggi
Definizione del contenuto del flusso di messaggi
Gestione degli errori nei flussi di messaggi
Gestione dei file ESQL
Riferimenti correlati
Nodo Compute
Nodo Database
Nodo Filter
Riferimento ESQL
Istruzione SET
Operatori di confronto semplici ESQL
Funzione CARDINALITY
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac17020_