2015-04-17 61 views
0

我有一个非常基本的SSIS包。将数据从SQL Server 2008表导出到txt文件(逗号分隔)。 最终客户希望带有文本限定符(“)的字段,但是当值为空时不需要文本限定符。 不幸的是,有时这些字段有一个值,而其他时间是空的。有没有办法只包含文本?预选赛时,有该领域的真正价值删除空值的文本限定符

目前出口看起来是这样的:

"Reference", "Key", "Name", "Custom1" 
"","123456","John Doe", "9515551212" 
"","654321","Jane Doe","" 

首选的输出:

"Reference", "Key", "Name", "Custom1" 
,"123456","John Doe", "9515551212" 
,"654321","Jane Doe", 

在参考场,它始终是空。所以我试图在这个字段上设置文本限定符“False”,但是令人难以置信的是他们甚至希望列标题符合文本条件。

+0

这是不可能的,因为csv文件不像大多数数据库一样遵循相同的“NULL”理论。空字符串和空字符串在csv文件中被认为是相同的,并且限定符表示它应该是空的文本字符串。在任何情况下,如果你有一个“合格的文件,一些领域没有资格,这将是一个绝对痛苦的进口。如果我是你我会咨询你的客户,并坚持他们重新考虑他们的决定 – SFrejofsky

+0

嗯,这是不可能的但是在创建文件后,您可以让脚本任务编辑文件并删除所有“”的发生。 –

回答

0

我想出了一个丑陋的解决方法。我创建了一个事务查询来执行一个case,当[field]为null时,那么null else''''+ [field] +'“'结束为”“”[field]“”“ 为每个字段都做了这件事,我(或者我的顾客)正在寻找什么。