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

How to clear txt file having different Delimiter using SSIS package?

我有一个以 ^(CAP) 和 ,(逗号) 作为分隔符的文本文件,清除后我需要加载到 sql 。我已尽力清除源文件 但是仍然没有像预期的那样清理文件。

请找到下图我已经尝试更正源文件

但文件仍未按预期清除。请在下面找到未清除的文件。

您在这里遇到了各种各样的问题。

  1. 您已将 header 分隔符标识为逗号。行定界符是通常不可见的定界符,用于指示已发生一行数据的价值。传统上,这是一个特定于操作系统的值,但它是一个 Carriage Return (CR)、Line Feed (LF) 或 Carriage Return/Line Feed.

  2. 您的源数据不是带有 caret/circumflex/cap 文本分隔符的逗号分隔文件。您有一个 comma-space 分隔文件,SSIS 在编辑器中不支持该文件。但是,如果您按照我在 How to read a flatfile with lowercase thorn as the delimiter 中概述的方式手动编辑 dtsx 文件以指定它应该使用逗号 space ColumnDelimiter="_x002C__x0020_"

给定一个 t运行源数据的分类版本

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

和逗号 (0x2C) space (0x20) 编辑到原始 dtsx 连接管理器中,我能够像您期望的那样提取数据

鉴于您选择了代码页并且未检查 Unicode 按钮,您可能还会 运行 遇到其他问题,但这超出了我从图像生成匹配源数据的能力。

只需将 ^, ^ 替换为 ^,^

看起来像你的来源

 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