none
导入文本文件时,调整为unicode后,报错无法排除 RRS feed

  • 问题

  • 情景:通过sqlserver2008r2 ssis 实现文本文件导入.

    遇到问题:导入文本文件时,遇到汉字"瓅"等特殊汉字时,导入失败,尝试通过substring(导入后会将字符串截断) 或添加服务 4808 服务启动项后 仍不能解决问题,于是考虑是文件编码问题,调整为unicode后,报错无法排除

    实现过程:我将文本文件调整为unicode编码,连接管理器中常规标签下勾选unicode,高级标签下所有字段类型全部为Unicode 文本流,
    平面文件源中 输入输出属性标签下"平面文件源输出"中所有外部列、输出列的数据类型都改为Unicode 文本流 [DT_NTEXT],报错误"平面文件源错误输出列的数据类型为dt_text,unicode文件不支持此数据类型"?这个问题困扰我很久了,请大家帮忙解决,谢谢.

    2013年9月22日 2:56

全部回复

  • 可以用转化组件强制转化吗?


    Please Mark As Answer if it is helpful.

    2013年9月22日 3:19
  • 可以用转化组件强制转化吗?


    Please Mark As Answer if it is helpful.


    平面文件源的验证错误,能通过下级的数据转换组件排除么?
    2013年9月22日 3:34
  • 可以用转化组件强制转化吗?


    Please Mark As Answer if it is helpful.


    平面文件源的验证错误,能通过下级的数据转换组件排除么?  我将平面文件源错误输出列的数据类型修改确定后,提示"属性值无效"

    2013年9月22日 4:09
  • 我自己试了一下你说的汉字倒入完全没有问题。


    Please Mark As Answer if it is helpful.

    2013年9月24日 1:10
  • 我自己试了一下你说的汉字倒入完全没有问题。


    Please Mark As Answer if it is helpful.

    我把文本文件修改了一下,只保留了这个字段导入通过了,换回来以后还是不行,很奇怪,错误提示如下,麻烦您帮我排除下...
    错误: 0xC0202009,位于 数据流任务, SQL Server 目标 [15]: SSIS 错误代码 DTS_E_OLEDBERROR。出现 OLE DB 错误。错误代码: 0x80040E14。
    已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 10.0” Hresult: 0x80040E14 说明:“链接服务器 '(null)' 的 OLE DB 访问接口 'BULK' 返回了对列 '[BULK].CHNAME' 无效的数据。”。
    错误: 0xC02092B5,位于 数据流任务, SQL Server 目标 [15]: 提交失败。
    错误: 0xC0047022,位于 数据流任务, SSIS.Pipeline: SSIS 错误代码 DTS_E_PROCESSINPUTFAILED。处理输入“SQL Server 目标输入”(31)时,组件“SQL Server 目标”(15)的 ProcessInput 方法失败,错误代码为 0xC02092B5。标识的这个组件从 ProcessInput 方法返回了一个错误。虽然该错误是此组件特有的,但却是致命的,将导致数据流任务停止运行。可能在此之前已经发出错误消息,提供了有关失败的详细信息。
    2013年9月24日 4:09
  • 1. 向导中有预览有没有问题?

    2. 是否某行中包含了特殊字符,如果能够找到出错的行,你可以单独把那几行放到一个文件中试下

    2013年11月27日 3:42
  • 源文件如果不是unicode,是ansi或者utf-8的,你调整ssis的编码也没有用处啊。

    如果你已经修改源文件的编码,请确认编码是unicode,而不是utf-8, utf-16之类的。

    还有你可能需要重新做一次数据流里面的源(直接修改已有的源虽然也可以,但是操作说起来比较麻烦)


    想不想时已是想,不如不想都不想。

    2013年11月27日 8:23
    版主
  • 我试了一下,是可以导入进去了。

    应该是你文本里,还有多余的空格, tab空格,导致的。

    查查文本。

    good luck

    2013年11月28日 2:44