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
我正在将数据从平面文件导入到 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