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