You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Db2执行UNION查询报错SQLCODE=-420,求原因解析

Db2 SQLCODE=-420错误原因解析

这个错误(SQLCODE=-420, SQLSTATE=22018)的直接原因是UNION操作中前后两个查询的对应列数据类型不兼容,Db2自动类型转换时失败:

  • 第一部分查询的APPOINTMENT_EFFECTIVE_DATE列:通过CASE语句返回的是字符串类型——满足条件时返回空字符串'',否则返回SUBSTR(A.RECORD_AREA,29,8)截取的字符值。
  • 第二部分查询的APPOINTMENT_EFFECTIVE_DATE列:C.APPT_LOB_EFF_DT字段大概率是日期类型、DECIMAL/DECFLOAT数值类型(比如以YYYYMMDD格式存储的数字日期)。

执行UNION时,Db2会强制统一两部分结果的列类型。如果C.APPT_LOB_EFF_DT是DECFLOAT/DECIMAL类型,Db2会尝试将第一部分的字符串转换为DECFLOAT,但第一部分中存在空字符串'',或者截取的字符包含非数字字符,无法转换为有效的数值,因此触发"字符字符串参数中发现无效字符"的错误。

另外注意:你的查询中存在无关联条件的隐式笛卡尔积(FROM子句直接罗列多表未加JOIN条件),虽然不是当前错误的诱因,但会导致结果集数据异常,建议后续补充表关联条件。


内容的提问来源于stack exchange,提问作者ZEHRA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 03:47:09