I got the error
SQL0420N Invalid character found in a character string argument of the function "DECFLOAT"
when executing this query. I am puzzled as I cannot detect any error or problem anymore. Can you help me? My database is a IBM DB/2 running on Linux, version 10.5.
SELECT
RTRIM(b.TOPOB) AS TOPOB,
a.TESTID,
a.AFO AS AFO,
DATE(a.ERFTS) AS DATUM,
a.WAFERNUM,
CHAR(b.rownum * 100) || CHAR(b.colnum) AS COLNUM,
CAST(b.devlres AS DECIMAL(10, 2)) AS ELEM_COS_RDIFF,
CAST(d.gmrcoef AS DECIMAL(10, 2)) AS ELEM_HC,
CAST(d.amrcoef AS DECIMAL(10, 2)) AS ELEM_LINEARITY_ERROR,
CAST(b.devdres AS DECIMAL(10, 2)) AS ELEM_RCOS,
CAST(b.devhres AS DECIMAL(10, 2)) AS ELEM_RGES,
CAST(b.devestarres AS DECIMAL(10, 2)) AS ELEM_RSIN,
CAST(d.pinangle AS DECIMAL(10, 2)) AS ELEM_SENS_NMAX,
CAST(d.senres AS DECIMAL(10, 2)) AS ELEM_SENS_NMIN,
CAST(b.devkres AS DECIMAL(10, 2)) AS ELEM_SIN_RDIFF
FROM
bouser.mrchm_hdr AS a
INNER JOIN
bouser.mrchm_data AS b ON b.testid = a.testid
INNER JOIN
bouser.mrchc_data AS d ON d.testid = a.testid
AND b.topob = d.topob
AND b.rownum = d.rownum
AND b.colnum = d.colnum
INNER JOIN (
SELECT
SERIENNR,
AKTMESSUNG
FROM
BOUSER.AFO0100
WHERE
Produkt LIKE 'Tethys%'
) T ON T.SERIENNR = a.WAFERNUM
WHERE
T.AKTMESSUNG = 'Y'
AND DATE(a.ERFTS) > CURRENT DATE - 2247 DAYS
AND a.afo = 9053
AND a.lastview = 'Y'
ORDER BY
a.WAFERNUM, COLNUM;
it turns out that the query is basically correct. As T.SERIENNR is CHAR and a.WAFERNUM is BIGINT a direct assignment cannot be made. The correction would be:
ON T.SERIENNR = CHAR(a.WAFERNUM)