我需要使用“执行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中的变量类型下拉列表框:
答案 0 :(得分:3)
SSIS有货币数据类型。 SQL有货币类型。
这些是兼容的。
答案 1 :(得分:1)
这就是我要做的事情:
答案 2 :(得分:-1)
(只是对donfolkes的一点修改)
在SSIS执行SQL任务中:select ?=convert(decimal(13,2), MoneyCol)
。在SSIS中设置参数并映射到UnknowMoney变量,也将方向作为输出。
为了将其发送回SQL,请使用SQL转换函数再次将其转换。