MySql错误:[Err] 1292 - Truncated incorrect DOUBLE 原因及解决

在oracle中写了一段sql,执行没问题,迁移到mysql的过程中,替换了字段名的双引号,但是忘了将oracle的连接字符串运算“||”替换成mysql的concat。

sql节选如下:

 CREATE TABLE `pc_way` AS
 SELECT
`26` || `27` || `28` || `29` seq_no,
`30` || `31` || `32` || `33` || `34` fix_id,
……
`105` || `106` || `107` RVSM_Minimum_Level,
`108` || `109` || `110` VSF_RVSM_Maximum_Level,
t.*
FROM
pc_file t

然后执行就报了

[Err] 1292 - Truncated incorrect DOUBLE

单独执行select并不报错。

多方搜索无果,大多数都是因为查询条件传错类型啊,或者字段指定错了类型什么的。忽然看到一篇文章提到“连接字符串”。顿悟。

sql改成:

create table pc_way_c as  
SELECT
CONCAT(`26` , `27` , `28` , `29`) seq_no,
CONCAT(`30` , `31` , `32` , `33` , `34`) fix_id,
……
CONCAT(`105` , `106` , `107`) RVSM_Minimum_Level,
CONCAT(`108` , `109` , `110`) VSF_RVSM_Maximum_Level
FROM

pc_file t


然后就执行通过了:

受影响的行: 100033

时间: 7.658s


结论:在不同数据库之前迁移sql的过程中,一定要注意数据库的差异。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值