这个存储过程哪里写错了解决方案

这个存储过程哪里写错了

用navicat 写的

BEGIN

DECLARE cc varchar(200);

update lastmsg set curpostime=tcurpostime,latitude=tlatitude,longitude=tlongitude,speed=tspeed where gpssn=tgpssn;

if insertflag=’1′ then

SET cc=concat(‘insert into t’+ tgpssn+’ (curpostime,latitude,longitude,speed) values(”’+tcurpostime+”’,”’+tlatitude+”’,”’+tlongitude+”’,”’+tspeed+”’)’);

SET @SQLString=cc;

PREPARE stmt from @SQLString;

  EXECUTE stmt;

  commit;

end IF;

END

参数:IN `tcurpostime` varchar(19),IN `tlatitude` varchar(12),IN `tlongitude` varchar(12),IN `tspeed` varchar(5),IN `tgpssn` varchar(20),IN `insertflag` varchar(1)

运行提示错误:Procedure execution failed

1292 – Truncated incorrect DOUBLE value: ”)’



你的表lastmsg中的字段都是什么数据类型? 你的错误提示是数据转换有问题,你的参数全是 varchar, 而表中字段应该是有 数字型的。

desc lastmsg

desc t’+ tgpssn+’ 相关的表贴出以供分析。

这个存储过程哪里写错了解决方案

相关文章:

你感兴趣的文章:

标签云: