我有一个SSIS项目,其中Flat File Source读取CSV文件。它包含一个字段Order Item Id,其格式为字符串,如" 347262171",用引号括起来。我想将其转换为数值,因此我可以将其用作索引,但我尝试的所有内容都会产生结果:
数据转换失败。列"订单项ID"的数据转换返回状态值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文件连接中的双引号。