SSIS - 垂直条与逗号分隔

时间:2018-02-14 17:09:44

标签: sql-server ssis etl delimiter flat-file

我的SSIS包有一个小问题。我正在导入一个平面文件。其中一个字段是以十进制值传入,即32.76。它被映射到int数据类型列。奇怪的是,如果输入平面文件是逗号分隔的,它将导入正常,但值的小数部分将被截断。但是如果平面文件是垂直条分隔(|),那么SSIS包会抛出一个错误,表明输入类型是字符串,不能转换为int类型。这是可以理解的,虽然我不确定为什么逗号分隔会截断,其中垂直条分隔会引发致命错误。这是两者之间的唯一区别。

并且会将列从int更改为decimal来解决问题吗?我不愿意这样做。

由于

1 个答案:

答案 0 :(得分:2)

逗号与竖线

如果某些字段值包含分隔符,则会将其视为两个字段,要解决此问题,您必须更改分隔符或向列添加文本限定符。

  

文本限定符=文本字段用

括起来的字符

Flat File Connection Manager

中了解详情

如何转换为整数

我不确定在源上是否对舍入十进制值进行舍入,因此如果该字段包含十进制值,则必须将类型更改为十进制或保留字符串类型并添加派生列转换或数据转换转换将其转换为整数(我更喜欢使用第二种方法)。