Sql server SSIS 2014发行版,货币(不含小数)在平面文件源中
我正在将数据从平面文件导入Sql server数据库。在平面文件中,数据没有小数,如30.00的3000。我尝试将此列设置为数据刻度为2的DT_Decimal或精度为(12-18)的DT_Numeric和数据刻度2,我还尝试了DT_CY Currency。所有这些都是在数据库中插入值3000.00,而不是30.00。我不知道如何实现这一点 您需要插入小数点。使用暂存表导入原始数据,然后使用类似于以下内容的方法从中选择数据并输入到生产表中Sql server SSIS 2014发行版,货币(不含小数)在平面文件源中,sql-server,ssis,Sql Server,Ssis,我正在将数据从平面文件导入Sql server数据库。在平面文件中,数据没有小数,如30.00的3000。我尝试将此列设置为数据刻度为2的DT_Decimal或精度为(12-18)的DT_Numeric和数据刻度2,我还尝试了DT_CY Currency。所有这些都是在数据库中插入值3000.00,而不是30.00。我不知道如何实现这一点 您需要插入小数点。使用暂存表导入原始数据,然后使用类似于以下内容的方法从中选择数据并输入到生产表中 declare @textval varchar(18)
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它如何知道将3000变为30.00?给它一个精度和比例将不会改变值。我如何从平面文件中插入30分贝的3000?谢谢,我遵循了同样的方法。