SQLServer中有一个字段content,ntext类型,导出到oracle会报错:
已获得 OLE DB 记录。源:“Microsoft OLE DB Provider for Oracle” Hresult: 0x80004005 说明:“数据类型不被支持。”。
然后我把ntext改成了nvarchar(4000),导出的时候不报错了,但是oracle只能用nvarchar2(2000)来接收,超过这个数字的都没有导入进去,用NCLOB接收的话还是报上面的错,怎么解决?

解决方案 »

  1.   

    ORACLE再加多一个列NVARCHAR(2000)来存储啊
    SQL导出的时候处理一下。1 LEFT(COL,2000), 2 STUFF(COL,1,2000,‘’)
      

  2.   

    如果数据量不是很大,可以直接用DTS进行导入导出。针对数据量比较大的方法
    1、将SQL中的数据导出成TXT文本格式【用DTS即可】
    2、编写ORACLE控制文件,可以对表中国的数据格式进行处理。
    3、使用sqlldr执行即可。