DB2数据库:The length, precision, or scale attribute for column, distinct type, structured type, array type, attribute of structured type, routine, cast target type, type mapping, or global variable "VARCHAR" is not valid.. SQLCODE=-604, SQLSTATE=42611, DRIVER=3.61.75
上面的bug
CREATE PROCEDURE DSJYDD.TWO_YEAR_COMPARE
(
IN V_POINTCODE VARCHAR(50)
)
DYNAMIC RESULT SETS 1 LANGUAGE SQL
BEGIN
p1:begin
DECLARE REF_CURSOR CURSOR WITH RETURN TO CLIENT FOR
SELECT TO_CHAR(S.WQTIME,'YYYY')||'年'||TO_NUMBER(TO_CHAR(S.WQTIME,'MM'))||'月'||TO_NUMBER(TO_CHAR(S.WQTIME,'DD'))||'日' YM,TO_CHAR(ADD_MONTHS(S.WQTIME,-12),'YYYY')LYY,TO_CHAR(S.WQTIME,'YYYY')YY,Q.VTYPE,Q.VNUM,Q.LVNUM FROM
(SELECT
MAX(WQTIME) WQTIME,
SUM(DECODE(DATALEVEL,'优',VNUM,0)) VNUM1,
SUM(DECODE(DATALEVEL,'良',VNUM,0)) VNUM2,
SUM(DECODE(DATALEVEL,'轻度污染',VNUM,0)) VNUM3,
SUM(DECODE(DATALEVEL,'中度污染',VNUM,0)) VNUM4,
SUM(DECODE(DATALEVEL,'重度污染',VNUM,0)) VNUM5,
SUM(DECODE(DATALEVEL,'严重污染',VNUM,0)) VNUM6,
SUM(DECODE(DATALEVEL,'优',LVNUM,0)) LVNUM1,
SUM(DECODE(DATALEVEL,'良',LVNUM,0)) LVNUM2,
SUM(DECODE(DATALEVEL,'轻度污染',LVNUM,0))LVNUM3,
SUM(DECODE(DATALEVEL,'中度污染',LVNUM,0))LVNUM4,
SUM(DECODE(DATALEVEL,'重度污染',LVNUM,0))LVNUM5,
SUM(DECODE(DATALEVEL,'严重污染',LVNUM,0))LVNUM6
FROM
(
SELECT QUALITY DATALEVEL,
SUM(DECODE(TO_CHAR(A.TIMEPOINT,'YYYY'),TO_CHAR(B1.JZTIME,'YYYY'),1,0)) VNUM,
SUM(DECODE(TO_CHAR(A.TIMEPOINT,'YYYY'),TO_CHAR(ADD_MONTHS(B1.JZTIME,-12),'YYYY'),1,0)) LVNUM,
MAX(A.TIMEPOINT) WQTIME
FROM DSJYDD.AIR_CITYDAYAQI_PUBLISH A,
(SELECT TO_DATE(TO_CHAR(MAX(B.TIMEPOINT),'YYYY')||'0101','YYYYMMDD') KSTIME,MAX(B.TIMEPOINT) JZTIME FROM DSJYDD.AIR_CITYDAYAQI_PUBLISH B) B1
WHERE
cast(A.CITYCODE as varchar)=V_POINTCODE
AND ((A.TIMEPOINT between B1.KSTIME and B1.JZTIME)
OR (A.TIMEPOINT between ADD_MONTHS(B1.KSTIME,-12) and ADD_MONTHS(B1.JZTIME,-12)))
GROUP BY A.QUALITY
)
) S ,TABLE(VALUES('优',VNUM1,LVNUM1),
('良',VNUM2,LVNUM2),
('轻度污染',VNUM3,LVNUM3),
('中度污染',VNUM4,LVNUM4),
('重度污染',VNUM5,LVNUM5),
('严重污染',VNUM6,LVNUM6))
AS Q(VTYPE,VNUM, LVNUM);
OPEN REF_CURSOR;
END;
END
GO
DB2数据库上面的红色字体更改成char就能解决上面的bug了