Eri*_*air 8 sql data-conversion ibm-midrange
我对iseries/DB2不太熟悉.但是,我在一个使用它作为主数据库的网站上工作.
最近在现有表中添加了一个新列.当我通过AS400查看它时,我看到以下数据类型:
Type: S
Length: 9
Dec: 2
Run Code Online (Sandbox Code Playgroud)
这告诉我这是一个数字字段,小数点前有6位数字,小数点后2位数字.
当我使用简单的SELECT(SELECT MYCOL FROM MYTABLE
)查询数据时,我会毫无问题地返回所有记录.然而,当我尝试使用DISTINCT
,GROUP BY
或ORDER BY
在同样的专栏中,我得到以下异常:
[SQL0802] Data conversion of data mapping error
Run Code Online (Sandbox Code Playgroud)
我推断出至少有一条记录有无效数据 - 我的DBA称之为"空白"或"4 O".这怎么可能呢?当尝试将无效数据添加到该列时,数据库是否应该抛出异常?
有什么方法可以解决这个问题,例如在我的查询中过滤掉那些不良记录吗?
“ 4 O”表示0x40,它是空格或空白字符的EBCDIC代码,并且是记录中任何新空格中的默认值。
旧版程序/操作可能会引入十进制数据错误。例如,如果使用CPYF
带有FMTOPT(*NOCHK)
选项的命令创建并填充了新文件。
修复它最简单的方法是编写一个HLL程序(RPG)来读取文件并更正记录。
归档时间: |
|
查看次数: |
18080 次 |
最近记录: |