DB2数据库CAST函数

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了

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值