我有一个 CSV文件 - 它有很多值将逗号作为值的一部分。字段中的逗号将误导我的SSIS包了解文件行的列数比以前说的多!
如何解决这个问题?
例如:
名称,金额,地址
我,20,000,我的家,印度
你,23,300,你的家,在哪里
这里只有3列,但SSIS假设所有逗号都用于分隔字段;实际上并非all.Amount列和地址列都有额外的逗号。
答案 0 :(得分:16)
Use Text Qualifier in Flat file Connection Manager as ". This will separate only values out of quotes by commas. Your data from db will be enclosed in quotes.
答案 1 :(得分:2)
您需要确保文件中包含逗号作为文本一部分的所有值都用双引号(“)括起来。然后您可以在平面文件源中设置文本限定符,并且将加载逗号作为字符串字段的一部分。
答案 2 :(得分:0)
我认为更好的方法是在SSIS数据流中使用派生列转换编辑器,并使用双引号更改表达式以包围字符串。
例如,如果列"地址"有逗号记录,然后创建一个表达式,如
派生列转换编辑器中的" \"&#34 +地址+" \""
。
如果您不愿意改变来源,我认为这是一个不错的选择。