在ssis中导出到csv时包含前导零

时间:2017-11-15 11:50:55

标签: sql-server csv ssis etl export-to-csv

我有一个将数据从表导出到.csv文件的包,它会导出600,000条记录。

我有几列有前导零和尾随零,而导出数据前导零和尾随零都丢失了。

EX:来自来源的实际数据

 column1   column2  
 001       67.50

在csv文件中导出数据

 column1   column2  
 1         67.5 

我尝试了许多方法,例如在派生列中放置数据转换以及复制功能

我也试过将数据导出到.txt文件并使用.cmd文件来更改.txt文件.csv文件,所有这些方法都没有产生任何结果。

有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:1)

导出为text或csv格式的文件时,需要保留前导和/或尾随零的数值,需要以下组合。

1)使用数据流下的派生列或转换任务,将数字字段转换为文本或varchar。

2)确保目标CSV文件的字段定义为字符长度足够的文本。

最后,如果您处于输出文件中需要数值(NULL或空白不可接受)的情况下,请查看以下链接。这是" 0.00"必须提供而不是NULL或空白。

How do I get SSIS Data Flow to put '0.00' in a flat file?

希望这有帮助。

答案 1 :(得分:1)

打开目标csc中使用的Flat File Connection manager,转到Advanced Tab将所有列数据类型更改为DT_STRDT_WSTR (请注意,保存数据时对于平面文件,没有考虑数据类型)

如果它仍然不起作用,则添加一个派生列,将这些值转换为DT_STR,然后再将它们分配给目标