加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

为什么我得到“数据映射错误的[SQL0802]数据转换”异常?

发布时间:2021-01-28 04:43:05 所属栏目:MsSql教程 来源:网络整理
导读:我对iseries / DB2不太熟悉.但是,我在一个使用它作为主数据库的网站上工作. 最近在现有表中添加了一个新列.当我通过AS400查看它时,我看到以下数据类型: Type: SLength: 9Dec: 2 这告诉我这是一个数字字段,小数点前有6位数字,小数点后2位数字. 当我使用简单的

我对iseries / DB2不太熟悉.但是,我在一个使用它作为主数据库的网站上工作.

最近在现有表中添加了一个新列.当我通过AS400查看它时,我看到以下数据类型:

Type: S
Length: 9
Dec: 2

这告诉我这是一个数字字段,小数点前有6位数字,小数点后2位数字.

当我使用简单的SELECT(SELECT MYCOL FROM MYTABLE)查询数据时,我会毫无问题地收回所有记录.但是,当我尝试在同一列上使用DISTINCT,GROUP BY或ORDER BY时,我得到以下异常:

[SQL0802] Data conversion of data mapping error

我推断至少有一条记录有无效数据 – 我的DBA称之为“空白”或“4 O”.这怎么可能呢?当尝试将无效数据添加到该列时,数据库是否应该抛出异常?

有什么方法可以解决这个问题,例如在我的查询中过滤掉那些不良记录吗?

解决方法

“4 O”表示0x40,它是空格或空白字符的EBCDIC代码,是放入记录中任何新空间的默认值.

传统程序/操作可能会引入十进制数据错误.例如,如果使用带有FMTOPT(* NOCHK)选项的CPYF命令创建并填充新文件.

解决它的最简单方法是编写HLL程序(RPG)来读取文件并更正记录.

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读