之前用DB2创建表示其中有一个金额字段用的varchar类型,导致在生产时用户做交易将该字段存储到数据库中时出现千分符(1,000)这种格式,然后查询时就会报错。
修复方案:
修改该字段类型为decimal类型保留小数点2位。(表名tablename 旧列 LIMIT 新列 LIMIT1)
第一步:在这个表中创建一个新的列
alter table tablename add column LIMIT1 DECIMAL(16,2)
第二步:将现有数据插入新列
update tablename set LIMIT1=CAST(LIMIT AS DECIMAL(16,2))
第三步:删除不需要的列
alter table tablename drop column LIMIT;
第四步:将新增的列重命名
alter table tablename rename column LIMIT1 TO LIMIT;
PS:生产中已有的数据如果有千分符的话在第二步时用CAST不能用该sql直接修改,会报错。试了几种方法都不行,只能手动修改数据。出现千分符这种问题在IE浏览器中出现,在火狐中就不会出现。哪位大神有关于浏览器兼容性的文章可以留下连接。。。。