【问题标题】:include leading zeros while exporting to csv in ssis在 ssis 中导出到 csv 时包括前导零
【发布时间】:2018-04-28 15:14:36
【问题描述】:

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

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

EX:来自源的实际数据

 column1   column2  
 001       67.50

csv 文件中的导出数据

 column1   column2  
 1         67.5 

我尝试了很多方法,比如在派生列中放置数据转换,以及复制函数

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

有没有办法做到这一点?

【问题讨论】:

  • 确保目标是文本列。如果这不起作用,请尝试使用引号换行文本。
  • 你是如何尝试从目的地打开 .CSV 文件的?
  • 受影响列的 SSIS 数据类型是什么?检查源组件的输出。

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


【解决方案1】:

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

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

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

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

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

希望这会有所帮助。

【讨论】:

    【解决方案2】:

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

    如果仍然无法正常工作,则添加一个派生列,将这些值转换为 DT_STR,然后再将它们分配给 Destination

    【讨论】:

      猜你喜欢
      • 2010-09-23
      • 1970-01-01
      • 2011-10-01
      • 2019-10-25
      • 2017-02-27
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 2016-05-02
      相关资源
      最近更新 更多