如何使用ssis包清除具有不同分隔符的txt文件?

v1l68za4  于 2021-07-29  发布在  Java
关注(0)|答案(2)|浏览(523)

我有一个文本文件,它有^(大写)和,(逗号)作为分隔符,清除后,我需要加载到sql。我已经尽力清除一个源文件,但仍然没有按预期清除文件。

请找到下面的图片,我试图纠正源文件

但文件仍未按预期清除。请查找以下未清理的文件。

o0lyfsai

o0lyfsai1#

你有很多问题。
您已将标题行分隔符标识为逗号。行分隔符通常是不可见的分隔符,用于指示行的数据量已发生。传统上,这是操作系统特定的值,但它是回车(cr)、换行(lf)或回车/换行。
源数据不是带有插入符号/扬抑符/大写文本分隔符的逗号分隔文件。您有一个逗号空格分隔的文件,ssis在编辑器中不支持该文件。但是,如果您手工编辑dtsx文件,如我在how to read a flatfile中所述,使用小写thorn作为分隔符指定它应该使用逗号空间 ColumnDelimiter="_x002C__x0020_" 给定源数据的截断版本

ListCode, CAS, Name
^216^, ^^, ^Coal Dust^
^216^, ^7782-24-5^, ^Graphite (Natural)^
^216^, ^^, ^Inert or Nuisance Dust^

在原始dtsx连接管理器中编辑了逗号(0x2c)空格(0x20),我能够像您所期望的那样提取数据

如果您选择了代码页并且没有检查unicode按钮,您可能还会遇到其他问题,但这超出了我从图像生成匹配源数据的能力。

aelbi1ox

aelbi1ox2#

把^,^换成^^
看来是你的线人

CAS, SubName, ListCode, Type, CountryCode, ListName
 ^1000413-72-8^,^fasiglifam^,^447^,^Chemical Inventory^,^EU^,^ECICS Custom Tariff Codes^
 ^1000413-72-8^,^fasiglifam^,^0^,^^,^NN^,^SPHERA Global Substance List^

然后使用以下详细信息编辑连接管理器

[![在此处输入图像描述][2]][2]
会有用的[2]: https://i.stack.imgur.com/0x89k.png

相关问题