首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server无法转换数据值

问Server无法转换数据值
EN

Stack Overflow用户
提问于 2013-08-05 23:50:40
回答 1查看 3.9K关注 0票数 0

我试图使用带有链接服务器的OPENQUERY从server导入数据到mysql。

我已经导入了两个表,但是对于一个有一个长varchar字段的表,我有一个问题。

每次运行此查询时,我都会得到以下内容

代码语言:javascript
复制
Msg 7344, Level 16, State 1, Line 2
The OLE DB provider "MSDASQL" for linked server "Serv1" could not INSERT INTO table "[MSDASQL]" because of column "Notes". Could not convert the data value due to reasons other than sign mismatch or overflow.

列Notes的类型为servr中的varchar(8000),MySQL中的varchar(8000)。

有什么问题吗?为什么要给我这个错误?我没有尝试过先对varchar(8000)进行case Notes,但这不起作用。

代码语言:javascript
复制
INSERT OPENQUERY (Serv1, 'SELECT 
id,
i3_identity,
mid,
Notes,
Comments,
result_code,
Disposition,
completed_on,
calltype
FROM finaltesting.activities') 
  SELECT
  CAST(ID AS int) AS id,
  CAST(identity AS int) AS identity,
  CAST(merchantAccount AS varchar(255)) AS mid,
  Notes,
  CAST(Comments AS varchar(8000)) AS Comments,
  CAST(FinishCode AS varchar(255)) AS result_code,
  CAST(Disposition AS varchar(255)) AS Disposition,
  CAST(callDate AS datetime) AS completed_on,
  CAST(CallType AS varchar(255)) AS calltype
FROM activities

由于符号不匹配或溢出以外的原因,无法转换数据值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-06 02:50:48

我能够通过将MySQL中的列类型从varchar(8000)改为Text来解决这个问题。我使用的是MySQL 5.6.12。当将Server转换为MySQL服务器时,可能会出现列类型问题。

谢谢

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18069644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档