【问题标题】:What variable type use to represent a Money in SSIS在 SSIS 中使用什么变量类型来表示金钱
【发布时间】:2011-04-28 18:05:54
【问题描述】:

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

【问题讨论】:

    标签: types ssis currency ssis-data-types


    【解决方案1】:

    SSIS 有一个货币数据类型。

    SQL 有一种货币类型。

    这些是兼容的。

    【讨论】:

    • 错了。我需要一个变量为货币类型。 SSIS 变量没有货币类型。
    • 哦,我明白了。既然您已经发布了屏幕截图,我已经提交了另一个答案。
    【解决方案2】:

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

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

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

    【讨论】:

    • 我写道,我需要一个货币类型的变量。不能将变量声明为 DT_CY 类型。
    【解决方案3】:

    这就是我会做的:

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

    【讨论】:

      猜你喜欢
      • 2011-10-19
      • 2023-03-04
      • 2010-10-24
      • 1970-01-01
      • 2015-11-19
      • 1970-01-01
      • 1970-01-01
      • 2011-01-12
      • 1970-01-01
      相关资源
      最近更新 更多