Created On:  20 March 2011

Problem:

The Host Compatibility Option is used to compile a program containing a Select UNION ALL as shown:
EXEC SQL SELECT  DESCR_ERRORE
                      INTO   :HV-AFTATER-DESCR-ERRORE
                      FROM  AFTATER
                     WHERE  BANCA           = :HV-AFTATER-BANCA
                       AND  APPLICAZIONE    = :HV-AFTATER-APPLICAZIONE
                       AND  CODICE_ERRORE   = :HV-AFTATER-CODICE-ERRORE
                    UNION ALL
                    SELECT  DESCR_ERRORE
                      INTO   :HV-AFTATER-DESCR-ERRORE
                      FROM  AFTATERS
                     WHERE  BANCA           = :HV-AFTATER-BANCA
                       AND  APPLICAZIONE    = :HV-AFTATER-APPLICAZIONE
                       AND  CODICE_ERRORE   = :HV-AFTATER-CODICE-ERRORE
         
 END-EXEC.

A compilation error is genereated:

COBDB0100S SQL0104N  An unexpected token "UNION ALL SELECT DESCR_ERRORE INTO :H0000" was found following "ICE_ERRORE = :HV-AFT".  Expected tokens may include:  "".  SQLSTATE=42601   

The DB2 Client version is 9.7.0.441.

Resolution:

DB2 LUW V9.7 doesn’t support that syntax for SINGLETON SELECT’s and that is why the error occurs.

To overcome the problem define a CURSOR SELECT like this:

           EXEC SQL DECLARE CSR1 CURSOR FOR SELECT  DESCR_ERRORE
                      FROM  AFTATER
                     WHERE  BANCA           = :HV-AFTATER-BANCA
                       AND  APPLICAZIONE    = :HV-AFTATER-APPLICAZIONE
                       AND  CODICE_ERRORE   = :HV-AFTATER-CODICE-ERRORE
                    UNION ALL
                    SELECT  DESCR_ERRORE
                      FROM  AFTATERS
                     WHERE  BANCA           = :HV-AFTATER-BANCA
                       AND  APPLICAZIONE    = :HV-AFTATER-APPLICAZIONE
                       AND  CODICE_ERRORE   = :HV-AFTATER-CODICE-ERRORE
           END-EXEC.
Incident #2503085