sqlserver中的varchar字段插入到mysql的text中不成功

mudangui_unk 2013-11-04 10:15:08
提示:消息 7399,级别 16,状态 1,第 1 行
链接服务器 "smssvr2" 的 OLE DB 访问接口 "MSDASQL" 报错。提供程序报告了意外的灾难性错误。
消息 7343,级别 16,状态 2,第 1 行
链接服务器 "smssvr2" 的 OLE DB 访问接口 "MSDASQL" 无法 INSERT INTO 表 "[MSDASQL]"。未知的提供程序错误。
Location: qxcntxt.cpp:1052
Expression: cref == 0
SPID: 57
Process ID: 7560
...全文
391 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
linjie515958947 2015-03-19
  • 打赏
  • 举报
回复
楼主是用触发器触发的吗?mssql表插入一条数据,触发触发器,触发器用openXXXX函数插入到mysql中吗?
Rotel-刘志东 2014-01-25
  • 打赏
  • 举报
回复
先将varchar数据导入到mysql中,然后修改表结构为text类型。 不过对于生产环境下,最好不要在业务操作频繁操作,可能会对线上有影响的,建议 在业务很少晚上去做此操作。
mudangui_unk 2013-11-05
  • 打赏
  • 举报
回复
引用 8 楼 iihero 的回复:
[quote=引用 7 楼 mudangui_unk 的回复:] [quote=引用 6 楼 rucypli 的回复:] [quote=引用 5 楼 mudangui_unk 的回复:] [quote=引用 4 楼 iihero 的回复:] 按道理不会有错. 可以先尝试把mysql中的对应字段也改为varchar(20)或者varchar(80)之类的试一试.看看是不是字段类型不对应造成的.逐步试错.
这样试过,是可以的。就是text数据类型的没有成功插入。而且mysql中的数据表示不允许改动的。[/quote] 那就先改成varchar的 导入成功后再改回来成text[/quote] 我跟版主的思路差不多,先导入到一个varchar类型的表中,再将中间表导入到text类型的表。有没有好点的办法直接插入。mysql的数据库基本上不允许建立触发器或者新表,这是最后的方案。[/quote] 是一次导入吗? 那就先弄成varchar()的,导入完成以后,直接将表结构修改一下就行了,把那个字段类型改为text [/quote] mysql数据库是我通过odbc方式建立的链接服务器。我的目的是sqlserver中生成一条数据就插入到mysql数据表中,实现实时的数据同步。
rucypli 2013-11-04
  • 打赏
  • 举报
回复
sql的varchar是定义的varchar(max)?
iihero_ 2013-11-04
  • 打赏
  • 举报
回复
引用 7 楼 mudangui_unk 的回复:
[quote=引用 6 楼 rucypli 的回复:] [quote=引用 5 楼 mudangui_unk 的回复:] [quote=引用 4 楼 iihero 的回复:] 按道理不会有错. 可以先尝试把mysql中的对应字段也改为varchar(20)或者varchar(80)之类的试一试.看看是不是字段类型不对应造成的.逐步试错.
这样试过,是可以的。就是text数据类型的没有成功插入。而且mysql中的数据表示不允许改动的。[/quote] 那就先改成varchar的 导入成功后再改回来成text[/quote] 我跟版主的思路差不多,先导入到一个varchar类型的表中,再将中间表导入到text类型的表。有没有好点的办法直接插入。mysql的数据库基本上不允许建立触发器或者新表,这是最后的方案。[/quote] 是一次导入吗? 那就先弄成varchar()的,导入完成以后,直接将表结构修改一下就行了,把那个字段类型改为text
mudangui_unk 2013-11-04
  • 打赏
  • 举报
回复
引用 6 楼 rucypli 的回复:
[quote=引用 5 楼 mudangui_unk 的回复:] [quote=引用 4 楼 iihero 的回复:] 按道理不会有错. 可以先尝试把mysql中的对应字段也改为varchar(20)或者varchar(80)之类的试一试.看看是不是字段类型不对应造成的.逐步试错.
这样试过,是可以的。就是text数据类型的没有成功插入。而且mysql中的数据表示不允许改动的。[/quote] 那就先改成varchar的 导入成功后再改回来成text[/quote] 我跟版主的思路差不多,先导入到一个varchar类型的表中,再将中间表导入到text类型的表。有没有好点的办法直接插入。mysql的数据库基本上不允许建立触发器或者新表,这是最后的方案。
rucypli 2013-11-04
  • 打赏
  • 举报
回复
引用 5 楼 mudangui_unk 的回复:
[quote=引用 4 楼 iihero 的回复:] 按道理不会有错. 可以先尝试把mysql中的对应字段也改为varchar(20)或者varchar(80)之类的试一试.看看是不是字段类型不对应造成的.逐步试错.
这样试过,是可以的。就是text数据类型的没有成功插入。而且mysql中的数据表示不允许改动的。[/quote] 那就先改成varchar的 导入成功后再改回来成text
mudangui_unk 2013-11-04
  • 打赏
  • 举报
回复
引用 4 楼 iihero 的回复:
按道理不会有错. 可以先尝试把mysql中的对应字段也改为varchar(20)或者varchar(80)之类的试一试.看看是不是字段类型不对应造成的.逐步试错.
这样试过,是可以的。就是text数据类型的没有成功插入。而且mysql中的数据表示不允许改动的。
iihero_ 2013-11-04
  • 打赏
  • 举报
回复
按道理不会有错. 可以先尝试把mysql中的对应字段也改为varchar(20)或者varchar(80)之类的试一试.看看是不是字段类型不对应造成的.逐步试错.
mudangui_unk 2013-11-04
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
sql的varchar是定义的varchar(max)?
是varcahr(20)
mudangui_unk 2013-11-04
  • 打赏
  • 举报
回复
是varchar(200)

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧