什么变量类型用于表示SSIS中的Money

时间:2010-10-21 17:14:53

标签: types ssis currency ssis-data-types

我需要使用“执行SQL任务”组件在SSIS中的变量中加载Money值。 我将SELECT的返回列映射到变量。 我已将变量“UnknownMoney”声明为Double或Single,但我总是收到错误:

Error: 0xC002F309 at Load Dummy vars, Execute SQL Task: An error occurred while assigning a value to variable "UnknownMoney": "The type of the value being assigned to variable "User::UnknownMoney" differs from the current variable type. Variables may not change type during execution. Variable types are strict, except for variables of type Object.".

SSIS中的Money列类型是DT_CY(货币),但此类型不适用于变量。

什么是用于钱的正确类型?

编辑:VS2012中的变量类型下拉列表框:

variable type listbox 2 variable type listbox 1

3 个答案:

答案 0 :(得分:3)

SSIS有货币数据类型。 SQL有货币类型。

这些是兼容的。

答案 1 :(得分:1)

这就是我要做的事情:

  1. 让SQL返回一个带有Select CAST的类型十进制(MoneyColumn AS decimal(34,8))FROM Table
  2. 将其设置为Decimal
  3. 类型的UnknownMoney
  4. 使用您的UnknownMoney变量。
  5. 如果您需要再次使用该变量作为钱,请将其重新投入资金:CAST(@UnknownMoney AS money)

答案 2 :(得分:-1)

(只是对donfolkes的一点修改)

在SSIS执行SQL任务中:select ?=convert(decimal(13,2), MoneyCol)。在SSIS中设置参数并映射到UnknowMoney变量,也将方向作为输出。

为了将其发送回SQL,请使用SQL转换函数再次将其转换。