带有十进制数据类型的SSIS 2010更新表提供错误“type not supported.DBTYPE_DECIMAL”

时间:2015-12-15 19:50:43

标签: sql-server ssis sql-update

奇怪的错误,在2012 Enterprise Edition db上使用SSIS 2010。 使用OLEDB连接。

变量a,b,c在ssis中定义为Decimal。          d定义为String。

Sql任务:

Select min(col1),max(col1) from table_a
           where key_value = ?

where: parameter 0 is d , data type=Varchar
         resultset 1 is a , 2 is b

表达任务:

 @[User:c] = (DT_DECIMAL,2) (@[User:a] + @[User:b])

Sql任务:

Update table_a
set col2 = ?
where key_value = ?

where: parameter 0 is c (DataType=DECIMAL) and 1 is d (DataType=Varchar)
  

错误:...因以下错误而失败:“类型不是            supported.DBTYPE_DECIMAL“。可能的失败原因:问题            查询,“ResultSet”属性设置不正确,参数不正确            设置正确,或连接未正确建立。

table_a定义为

  d  varchar(4),
    col1 numeric(10,2),
    col2 numeric(10,2)

表格中有多行d而没有索引...  我已经尝试在update语句中转换和转换值  有什么想法是错误的吗? 感谢

1 个答案:

答案 0 :(得分:0)

检查SQL任务的参数映射部分,以确保正确设置参数。 我以前见过这个,'参数设置不正确'是关键。