SSIS文本限定符无法正常工作

时间:2014-12-05 08:44:51

标签: sql-server csv import ssis

我有一个我通过SSIS导入的CSV文件.Below是我文件中的数据样本

" MEM1001""其他"" P" ,20101001,20781231,20781231,20101001, " Medic"," General> 21" , " A100100" " 2210",20101001,20781231

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

但是像" P" ," Medic"," General> 21" " A100100" ,当我预览数据时,仍然会附加双引号,而字符串列的休息没有双引号。 我猜这与引号后的空格有关。

有人可以解释为什么会这样,以及如何在将数据从文件导入表格时使这些列没有双引号。

3 个答案:

答案 0 :(得分:0)

我不知道为什么这些额外的空格会导致这个问题。

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

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

谢谢

答案 1 :(得分:0)

我偶然发现了这篇文章,我遇到了同样的问题,我一直在努力,找不到任何其他解决方案。

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

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

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

你还应该添加Trim(),否则你在单词之前和之后都有空格。这在合并连接中可能会有问题(在我看来是这样)。

答案 2 :(得分:0)

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