在平面文件源中使用货币(无十进制)的SSIS 2014问题

时间:2015-02-27 17:06:11

标签: sql-server ssis

我将数据从平面文件导入到Sql server数据库。在平面文件中,数据没有小数,如3000为30.00。我尝试将此列设置为DT_Decimal,使用DataScale 2或DT_Numeric精确(12 - 18),DataScle 2和I也尝试使用DT_CY Currency。所有这些都是在数据库中插入值3000.00而不是30.00。我不知道如何实现这个?

2 个答案:

答案 0 :(得分:4)

我是通过以下步骤完成的:

1)创建并打开了一个SSIS项目

2)添加了数据流任务

3)创建了一个平面文件源

4)创建了两步变换:

4a) Data Transformation to a dt_decimal

4b) Derived Column with the Expression: decColumn0 / 100

5)Ole DbDestination

答案 1 :(得分:0)

您需要插入小数。使用临时表导入原始数据,然后使用下面的内容从生产数据表中选择它。

declare @textval varchar(18) = '3000'

select CONVERT(Decimal(18,2),Left(@Textval, LEN(@Textval)-2) + '.' + Right(@Textval,2))