这个存储过程哪里写错了
用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+' 相关的表贴出以供分析。