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.
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.
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
Old KB# 33723
#MFDS
#EnterpriseDeveloper
#UNIONALL
#HCO
#SQL0104N