3

我需要使用“执行 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中的变量类型下拉列表框:

变量类型列表框 2 变量类型列表框 1

4

3 回答 3

3

SSIS 具有货币数据类型。

SQL 有一种货币类型。

这些是兼容的。

于 2014-04-23T15:49:31.723 回答
1

这就是我要做的:

  1. 让 SQL 返回带有 Select CAST(MoneyColumn AS decimal(34,8)) FROM Table 的类型小数
  2. 将其设置为 Decimal 类型的 UnknownMoney
  3. 使用您的 UnknownMoney 变量。
  4. 如果您需要再次将变量用作货币,请将其重新转换为货币:CAST(@UnknownMoney AS money)
于 2015-09-22T14:48:58.387 回答
-1

(只是对唐福克斯的回答稍作修改)

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

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

于 2015-08-27T15:53:02.487 回答