首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

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

2012-04-19 
这个存储过程哪里写错了用navicat 写的BEGINDECLARE cc varchar(200)update lastmsg set curpostimetcur

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

热点排行