将带引号的字符串转换为整数?

时间:2018-03-14 15:38:59

标签: sql-server file ssis flat

我有一个SSIS项目,其中Flat File Source读取CSV文件。它包含一个字段Order Item Id,其格式为字符串,如" 347262171",用引号括起来。我想将其转换为数值,因此我可以将其用作索引,但我尝试的所有内容都会产生结果:

  

数据转换失败。列"订单项ID"的数据转换返回状态值2和状态文本"由于可能丢失数据,无法转换该值。"

最简单的解决方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以向数据流添加派生列转换(DCT),您可以在其中添加从值中删除引号的表达式:

REPLACE( [ID FIELD], "\"", "" )

其中ID FIELD是数据中包含ID值的列。将此列添加为数据流的新NVARCHAR列(即STRIPPED_ID_FIELD)。

然后,添加第二个DCT,将此值转换为数字(DB_NUMERIC(10,0))[STRIPPED_ID_FIELD],并将其命名为NUM_ID_FIELD

我在第二个独立的DCT中使用的原因是,您可以向第二个DCT添加错误输出,并将其重定向到Recordset Destination。然后将数据查看器添加到错误输出以查看哪种记录错误。例如,具有您不期望的字母的ID字段。

答案 1 :(得分:0)

如果您使用的是平面文件,则可以通过指定Text Qualifier =“来删除Flat文件连接中的双引号。

Image description of where to insert Qualifier

相关问题