用sqlserver 连接服务器连接mysql数据库 名字是IM,在sqlserver查询分析器中执行
insert into openquery( IM,'select MOBILES,CONTENT from im.api_mt_8' ) select mobile01,CONTENT from  CTAIS_Message_AUTO 
报错如下:
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'MSDASQL' 报错。 
[OLE/DB provider returned message: 不支持对 BLOB 值执行基于查询的插入或更新操作。]
OLE DB 错误跟踪[OLE/DB Provider 'MSDASQL' IRowsetChange::InsertRow returned 0x80004005:   ]。好像是mysql数据库中的content字段是blob型,应该怎么办?
如何解决??
谢谢

解决方案 »

  1.   

    insert into openquery( IM,'select MOBILES,CONTENT from im.api_mt_8' ) select mobile01,CONTENT from  CTAIS_Message_AUTO ===
    查查openquery的联机帮助,这可是一个 结果集呀
      

  2.   

    另外openquery的第一个参数可是一个标识符,表示链接的服务器的名称。
    EXEC sp_addlinkedserver 'OracleSvr', 
       'Oracle 7.3', 
       'MSDAORA', 
       'ORCLDB'
    GO
      

  3.   

    insert into openquery( IM,'select MOBILES,CONTENT from im.api_mt_8' ) select mobile01,CONTENT from  CTAIS_Message_AUTO 
    IM就是连接服务器名,  from im,im就是数据库名  api_mt_8 就是表名
      

  4.   

    如果mysql的api_mt_8表中有一条记录,那么这条语句就可以插入成功,如果没有数据就报错
    服务器: 消息 7399,级别 16,状态 1,行 1
    OLE DB 提供程序 'MSDASQL' 报错。 
    [OLE/DB provider returned message: 不支持对 BLOB 值执行基于查询的插入或更新操作。]
    OLE DB 错误跟踪[OLE/DB Provider 'MSDASQL' IRowsetChange::InsertRow returned 0x80004005:   ]。