SSIS数据转换转换
SSIS Data conversion transformation
在 SSIS 中,我读取了一个具有列格式的 csv 文件 - 例如 1.25
或 2.50
。
在数据转换任务中,我转换为十进制 dt_decimal
scala 2。
在数据表中,该列的格式为 decimal(18,2)。
数据将以125.00
或25.00
而不是1.25
和2.50
存储。
我需要调整什么?
可能的问题原因
(1) 数据类型不匹配
我认为类似的问题是由于源和目标之间的数据类型不匹配,或者数据转换输出和目标之间不匹配造成的。
(2) 数字分隔符
另一个原因可能是数值包含逗号 ,
作为格式,例如千位逗号 1,000,000
和小数点分隔符 .
,例如 1.02
.
可能的解决方案
(1) 指定源中的数据类型
为了防止这个问题是由数据转换引起的,如果你的源数据格式正确。那么就不需要数据转换了。在 Flat File Connection Manager
编辑器中。转到高级选项卡,Select 包含小数的列并更改其数据类型(尝试 DT_NUMERIC
和 DT_DECIMAL
)以及精度和小数位数 属性。
如果问题仍然存在,请确保输入和输出具有相同的元数据(精度和比例)。
(2) 派生列
或者您应该使用具有类似表达式的派生列转换:
(DT_NUMERIC,18,2)[COLUMN]
(3) 使用派生列替换分隔符
您可以使用派生列替换分隔符
(DT_NUMERIC,18,2)REPLACE([COLUMN], ",", ".")
在 SSIS 中,我读取了一个具有列格式的 csv 文件 - 例如 1.25
或 2.50
。
在数据转换任务中,我转换为十进制 dt_decimal
scala 2。
在数据表中,该列的格式为 decimal(18,2)。
数据将以125.00
或25.00
而不是1.25
和2.50
存储。
我需要调整什么?
可能的问题原因
(1) 数据类型不匹配
我认为类似的问题是由于源和目标之间的数据类型不匹配,或者数据转换输出和目标之间不匹配造成的。
(2) 数字分隔符
另一个原因可能是数值包含逗号 ,
作为格式,例如千位逗号 1,000,000
和小数点分隔符 .
,例如 1.02
.
可能的解决方案
(1) 指定源中的数据类型
为了防止这个问题是由数据转换引起的,如果你的源数据格式正确。那么就不需要数据转换了。在 Flat File Connection Manager
编辑器中。转到高级选项卡,Select 包含小数的列并更改其数据类型(尝试 DT_NUMERIC
和 DT_DECIMAL
)以及精度和小数位数 属性。
如果问题仍然存在,请确保输入和输出具有相同的元数据(精度和比例)。
(2) 派生列
或者您应该使用具有类似表达式的派生列转换:
(DT_NUMERIC,18,2)[COLUMN]
(3) 使用派生列替换分隔符
您可以使用派生列替换分隔符
(DT_NUMERIC,18,2)REPLACE([COLUMN], ",", ".")