【问题标题】:SSIS Text Qualifier not working correctlySSIS 文本限定符无法正常工作
【发布时间】:2015-02-03 09:21:21
【问题描述】:

我有一个通过 SSIS 导入的 CSV 文件。以下是我文件中的数据示例

"MEM1001","OTHER","P",20101001,20781231,,20781231,20101001, "医生","一般 >21" , "A100100","2210",20101001,20781231

我在连接管理器中添加了 , 作为列分隔符和 " 作为文本限定符。

但是当我预览数据时,像 "P" ,"Medic","General >21" ,"A100100" 这样的列仍然用双引号括起来,而其余的字符串列没有双引号。 我猜它与引号后的空格有关。

有人可以解释为什么会发生这种情况,以及如何在将数据从文件导入表时使这些列不带双引号。

【问题讨论】:

    标签: sql-server csv import ssis


    【解决方案1】:

    我只是偶然发现了这篇文章,我遇到了同样的问题,我正在尝试并找不到任何其他解决方案。

    文本限定符 " 仅适用于 csv 文件,当引号直接在冒号后面时,冒号和文本标识符/限定符后面没有空格。我不知道为什么。

    如果您无法修复输入数据,则可以选择创建派生列并替换双引号。 这对我有用: How to replace double quotes in derived column transformation?

    Trim(REPLACE(COLA, "\"", ""))
    

    您还应该添加 Trim(),否则在单词之前和之后可能会有空格。这在合并连接中可能会出现问题(在我的情况下是这样)。

    【讨论】:

      【解决方案2】:

      我不知道为什么这个多余的空格会导致这个问题。

      这就是我要做的。这可能不是最好的主意,但应该可以。

      您需要在数据流任务之前添加脚本任务,将所有“,”和“,”替换为“,”。

      谢谢

      【讨论】:

        【解决方案3】:

        为什么不直接转到该 csv 文件的连接管理器,单击“列”,然后在“列分隔符”框下输入一个空格,后跟一个逗号?为我工作。

        【讨论】:

          猜你喜欢
          • 2015-12-13
          • 1970-01-01
          • 2020-06-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-15
          • 2016-05-27
          相关资源
          最近更新 更多