sql-server - 在 SSIS 中使用小数字段

标签 sql-server sql-server-2008 ssis

我使用的是 SQL Server 2008 w/SP2。

我有一个传入的十进制(9,2)字段通过我的 传入OLE DB 转换 到我的 记录集目标转换 .我看到当我单击目标转换的输入和输出属性选项卡时,出于某种原因,它将此特定字段显示为 DT_NUMERIC 类型。就像是把它读成小数以外的东西?我不知道……我不是 SSIS 专家。

所以继续......我的问题从这里开始,我试图将值填充到这个十进制字段的变量中。在 foreach 循环 , 我有一个 变量 表示这个十进制字段,以便我可以使用它。

我认为众所周知的第一个问题是 SSIS 变量没有十进制类型。根据我自己的测试以及我在那里读到的内容,人们正在使用类型 对象 使 SSIS 对十进制值“满意”的变量?这让我很开心。

但是,然后在我的 foreach 循环中,我有 for 循环 .在里面,我使用了一个 E*execute SQL 任务转换*。在里面,我需要创建参数映射 到我的 变量 这样我就可以在此处的 T-SQL 调用中使用该十进制字段。所以现在我看到参数的类型十进制并使用它并将其设置为指向我的变量。

当我运行 SSIS 并且它命中我的 SQL 调用时,我会在输出窗口中看到它。:

   The type is not supported.DBTYPE_DECIMAL 

所以我在这里撞墙。我想做的就是使用小数点!!!

最佳答案

我会尝试将值转换为数据流任务中的 double 或 varchar 而不是对象。请注意,您可能必须在执行 sql 任务中使用强制转换或转换语句将类型更改回事务 sql 语句中的十进制。

关于sql-server - 在 SSIS 中使用小数字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12452727/

相关文章:

sql-server - 数据库文件级加密

sql-server - SQL Server - 我“真正”需要多少用户?

java - 操作数类型冲突 : datetime2 is incompatible with tinyint

sql - 根据今天获取下一个工作日的算法

sql - 想要从显示内容中排除数字

sql-server - 每个部署配置的 SSIS 变量值

sql - 如何在 SQL 查询中将另一列的最大日期添加到新列中?

sql-server-2008 - SSIS不能使用变量(平面文件> OLE DB命令),必须声明标量变量 "@"

sql-server - VS 数据库项目主键名称

c# - 将sql函数转换为c#