【发布时间】:2016-05-07 02:46:47
【问题描述】:
我正在尝试使用 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 我已经复制了几张表,但这张表欺骗了我。
在数据库的两侧,description 字段为varchar(8000)。 MySql中没有描述为空的行,最长的描述只有5031个字符。
我尝试在 MySql 中创建一个具有相同数据结构的新视图,但得到了相同的错误。 我无法确定哪一行的描述字段无效,因为该表包含超过 65000 行。
我也尝试将数据转储到 SQL 文件中,但我在 Management Studio 中得到了OutOfMemoryException。转储的 sql 文件本身约为 60 MB。
有什么建议或其他迁移这些数据的方法吗?
提前致谢!
【问题讨论】:
-
尝试使用不同版本的 MySQL OLE DB Provider。
-
我在 FoxPro 驱动程序中遇到了类似的问题,只能通过找到攻击行并在 FoxPro 侧更改它来解决(我遇到了超出正常范围的日期问题)。虽然看起来太难了,但如果您尝试按一半查询过滤(从 65.000 -> 32.000 -> 16.000 -> 8.000 -> 4.000 -> 2.000 -> 1.000 -> 500 -> 250 -> 125 传递,您可以很快找到它-> 62 -> 到 31 只需要 14 次拍摄)。
-
谢谢各位!似乎将数据类型从 varchar 更改为 text 有效!
标签: mysql sql sql-server odbc openquery