日期:2014-05-17  浏览次数:20665 次

通过链接服务器从mssql2008向mysql导数据报错
下面语句从Sql server数据库表查数据往mysql数据库中插入数据报错,(链接服务器mysqlytest没有问题,通过ODBC建立)
insert into openquery(mysqlytest,'select Id,Sid,Title,Des from t_inforesult') 
select Id,Sid,Title,Des from t_inforesult --Sql server数据库表

Des 字段在Sql server是VARCHAR类型,长度是255
Des 字段在mysql也是VARCHAR类型,长度是500

下面是错误信息

链接服务器"mysqlytest"的 OLE DB 访问接口 "msdasql" 返回了消息 "多步 OLE DB 操作产生错误。如果可能,请检查每个 OLE DB 状态值。没有工作被完成。"。
消息 7344,级别 16,状态 1,第 1 行
由于列 "Des",链接服务器 "mysqlytest" 的 OLE DB 访问接口 "msdasql" 无法 INSERT INTO 表 "[msdasql]"。由于除符号不匹配和溢出之外的其他原因,未能转换数据值。
Location:  qxcntxt.cpp:1052
Expression:  cref == 0
SPID:  63
Process ID:  276
------解决方案--------------------
Des 字段在mysql长度改为765
------解决方案--------------------
类型不配吧?