SSIS - 竖线与逗号分隔
SSIS - Vertical bar vs comma delimited
我的 SSIS 包有一个小问题。我正在导入一个平面文件。其中一个字段以十进制值传入,即 32.76。它被映射到一个 int 数据类型列。奇怪的是,如果输入的平面文件是逗号分隔的,它将正常导入,尽管值的小数部分被截断了。但是如果平面文件是竖线分隔(|),那么SSIS包会抛出一个错误,提示输入类型是string,不能转换成int类型。这是可以理解的,尽管我不确定为什么逗号分隔会截断,而竖线分隔会引发致命错误。这是两者之间的唯一区别。
将列从 int 更改为 decimal 是否可以解决问题?我舍不得。
谢谢
逗号与竖线
如果某些字段值包含分隔符,它会导致被视为两个字段,要解决此问题,您必须更改分隔符或向列添加文本限定符。
Text qualifier = Character that text fields are enclosed with
中阅读更多内容
如何转换成整数
我不确定是否在 Source 上对十进制值进行了四舍五入,所以如果该字段包含十进制值,那么您必须将类型更改为十进制或保留它的字符串类型并添加派生列转换或将其转换为整数的数据转换转换(我更喜欢使用第二种方法)。
我的 SSIS 包有一个小问题。我正在导入一个平面文件。其中一个字段以十进制值传入,即 32.76。它被映射到一个 int 数据类型列。奇怪的是,如果输入的平面文件是逗号分隔的,它将正常导入,尽管值的小数部分被截断了。但是如果平面文件是竖线分隔(|),那么SSIS包会抛出一个错误,提示输入类型是string,不能转换成int类型。这是可以理解的,尽管我不确定为什么逗号分隔会截断,而竖线分隔会引发致命错误。这是两者之间的唯一区别。
将列从 int 更改为 decimal 是否可以解决问题?我舍不得。
谢谢
逗号与竖线
如果某些字段值包含分隔符,它会导致被视为两个字段,要解决此问题,您必须更改分隔符或向列添加文本限定符。
中阅读更多内容Text qualifier = Character that text fields are enclosed with
如何转换成整数
我不确定是否在 Source 上对十进制值进行了四舍五入,所以如果该字段包含十进制值,那么您必须将类型更改为十进制或保留它的字符串类型并添加派生列转换或将其转换为整数的数据转换转换(我更喜欢使用第二种方法)。