使用带有MySQL链接服务器的openquery,宽varchar字段导致“不支持请求转换”错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用带有MySQL链接服务器的openquery,宽varchar字段导致“不支持请求转换”错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1760字,纯文字阅读大概需要3分钟。
内容图文
![使用带有MySQL链接服务器的openquery,宽varchar字段导致“不支持请求转换”错误](/upload/InfoBanner/zyjiaocheng/901/a3f885a7e60345a7bd3cf382c78c4d12.jpg)
我正在尝试使用openquery将表从MySql迁移到MSSQL但我不断收到以下错误消息:
OLE DB provider "MSDASQL" for linked server "MYSQL" returned message "Requested conversion is not supported.".
Msg 7341, Level 16, State 2, Line 1
Cannot get the current row value of column "[MSDASQL].description" from OLE DB provider "MSDASQL" for linked server "MYSQL".
我正在尝试运行的SQL查询:
insert into dbo.tickets (id, description, createdAt)
select * from openquery(MYSQL, 'select * from mydb.tickets')
有了openquery,我已经复制了几张桌子,但这个让我很烦.
在数据库的两侧,描述字段是varchar(8000).在MySql中没有描述为null的行,最长的描述只有5031个字符.
我尝试使用相同的数据结构在MySql中创建一个新视图,但是得到了相同的错误.
我无法确定哪一行具有无效的描述字段,因为该表包含超过65000行.
我也尝试将数据转储到SQL文件中,但我在Management Studio中得到了OutOfMemoryException.转储的sql文件本身大约是60 MB.
有关迁移此数据的任何建议或其他方式吗?
提前致谢!
解决方法:
在我的测试中,我发现添加CAST(字段为char(4000))也解决了这个问题.
我在MySQL 5.1数据库中创建了以下内容:
create table tmp_patrick (summary_text varchar(4096));
insert into tmp_patrick values ('foo');
当我在SQL Server 2008 R2 SP1(10.50.2500)上执行以下操作时,使用MySQL ODBC驱动程序64位,版本5.1或5.2w:
select * from openquery(MYSQL, 'select summary_text from scratch.tmp_patrick')
它会生成错误:
OLE DB provider "MSDASQL" for linked server "MYSQL" returned message "Requested conversion is not supported.".
Msg 7341, Level 16, State 2, Line 1
Cannot get the current row value of column "[MSDASQL].summary_text" from OLE DB provider "MSDASQL" for linked server "MYSQL".
但如果我添加CAST:
select * from openquery(MYSQL, 'select CAST(summary_text as char(4000)) from scratch.tmp_patrick')
然后它工作.转换为char(4001)将失败.
我不清楚4000字符限制的来源.
内容总结
以上是互联网集市为您收集整理的使用带有MySQL链接服务器的openquery,宽varchar字段导致“不支持请求转换”错误全部内容,希望文章能够帮你解决使用带有MySQL链接服务器的openquery,宽varchar字段导致“不支持请求转换”错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。