SSIS 2014 问题与平面文件源中的货币(无小数)

SSIS 2014 issue with currency (Without Decimal) in a flat file source

我正在将数据从平面文件导入到 Sql 服务器数据库。在平面文件中,数据没有小数点,例如 3000 表示 30.00。我尝试将此列设置为使用 DataScale 2 的 DT_Decimal 或使用精度 (12 - 18) 和 DataScle 2 的 DT_Numeric,我还尝试了 DT_CY 货币。所有这些都在数据库中插入值 3000.00 而不是 30.00。我不知道如何实现这个?

您需要插入小数点。使用暂存 table 导入原始数据,然后 select 使用类似下面的内容从中导入您的生产 table.

declare @textval varchar(18) = '3000'

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

我是按照以下步骤完成的:

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

2) 添加了数据流任务

3) 创建平面文件源

4) 创建了两步转换:

4a) Data Transformation to a dt_decimal

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

5) Ole DbDestination