【问题标题】:SSIS Data Conversion numbers forces roundingSSIS 数据转换数字强制舍入
【发布时间】:2012-11-12 16:25:20
【问题描述】:

情况:包含数字的列作为字符串导入SSIS。我们正在根据使用数据转换任务的数据类型将字符串转换为整数或十进制数。配置错误输出用于将错误和截断重定向到脚本任务。

问题: SSIS 数据转换转换会舍入数值以适应新的数据类型,并且不会引发转换或截断错误。数字不会发生行重定向。例如,当需要DT_DECIMAL (10,2),但转换了12.123 的值时,该值将四舍五入为12.12,不会出现错误或截断重定向。我使用数据查看器来验证数据转换任务是否导致舍入。来自非数字字符的错误确实会导致行重定向。

期望的输出:如果数据与所需的数据类型不匹配,我们希望抛出错误信号,例如DT_DECIMAL (10,2)

有没有办法让数据转换任务不进行数字四舍五入,或者是否需要其他任务来执行此操作?

【问题讨论】:

  • 您是指数据转换转换(数据流的一部分)吗?
  • 是的,我的意思是数据转换转换。我更新了帖子以反映您的更正。

标签: rounding ssis data-conversion


【解决方案1】:

您可能需要另一项任务,用于数据转换的脚本组件提供了最大的灵活性。 您将能够在代码中自定义数据转换和错误输出。

【讨论】:

  • 遗憾的是,这就是我们最终不得不做的事情。
【解决方案2】:

如果您打开数据转换转换编辑器,则会有一个用于配置错误输出的按钮。从那里,您可以将截断的行为设置为您想要的任何方式。

【讨论】:

  • 我正在使用配置错误输出将错误和截断重定向到脚本任务。问题是数字没有发生行重定向。例如,当需要 DT_DECIMAL (10,2),但转换了 12.123 的值时,该值将四舍五入为 12.12,没有错误或截断重定向。我使用数据查看器来验证数据转换任务是否导致舍入。来自非数字字符的错误确实会导致行重定向。 (更新帖子以反映此评论)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多