SSIS 输出到平面文件为 0.00

Posted

技术标签:

【中文标题】SSIS 输出到平面文件为 0.00【英文标题】:SSIS Output to Flat File as 0.00 【发布时间】:2010-10-25 23:48:45 【问题描述】:

在 SSIS 中,我的 OLE DB 源中有一个 MONEY 列,格式为 0.00。我想以完全相同的格式将此值输出到平面文件。到目前为止,我找到了两种解决方案:

    将其转换为我的源中的字符串并将字符串输出到文件中。由于这是一个平面文件,它并不关心我是如何达到 0.00 的。它只是将其用作值。

    在数据流中使用派生列生成一个 0.00 的字符串。这只是实现第一个解决方案的一种更难的方法,但它可以在我无法控制源数据格式的情况下工作。

我不太喜欢这两种解决方案,因为它需要一些额外的工作才能正确地将格式强制为字符串。如果我将数据流源输出列更改为 Numeric(18,2),我可以让数据输出为 .00,但这并不能完全解决问题。 有没有办法在不将数据转换成字符串的情况下输出 0.00?

【问题讨论】:

我仍在尝试确定为什么 SSIS 输出“.00”而不是“0.00”。很高兴发现。 【参考方案1】:

使用 ABS() 正则表达式。它仍然是数字并产生您想要的“0.00”。

ABS(numeric_expression)

** 看看数学正则表达式。如果您的源数据中有负值,则 ABS 可能不是您想要的。

【讨论】:

这并不能完全满足我的需求,因为我需要负值。理想情况下,我更喜欢不需要转换或脚本任务的解决方案,但如果没有其他选择,我会这样做。 标记为已接受,因为这基本上是一个死问题,而您的回答有部分帮助。

以上是关于SSIS 输出到平面文件为 0.00的主要内容,如果未能解决你的问题,请参考以下文章

SSIS输出日期为DD / MM / YYYY 00:00:00

在SSIS中导入CSV:截断错误

005_SSIS 两种输出xml的方式

防止平面文件目标中的重复标题 - SSIS

SSIS Oracle Source 仅输出 1 个字符

如何创建SSIS脚本任务以从平面文件中删除CR LF