SSIS数据流任务自动隐式转换

问题描述 投票:1回答:2

我有以下场景:

  1. 我有一个OLEDB源的数据流任务,使用带内连接的查询从源表中获取数据。其中一列是varchar(8),很少值是float,其余是int到此列。
  2. OLEDB目的地将上述数据存储到表中,其中对应列是INT。
  3. 此程序包部署在SQL Server 2012下,SQL Job正在执行此SSIS程序包。
  4. 这个SSIS包在我们的一个环境中成功执行并进行隐式转换,但在其他环境中,它的转换错误失败,这是显而易见的。

所以,我的问题是,为什么它不会在我们的环境中失败。可能有任何特定于环境,SSMS特定或SQL作业特定的设置,这有助于这项工作取得成功吗?请帮忙。

sql-server ssis etl implicit-conversion ssis-2012
2个回答
0
投票

基于这个Microsoft article

  • Varchar可以隐式转换为INT和Float
  • Float可以隐式转换为INT和Varchar
  • INT可以隐式转换为Float和Varchar

我认为您尝试导入的数据在Varchar列中包含正确的INT和Float值。另一方面,您尝试在另一台服务器上导入的数据包含无法转换的值(可能是特殊字符或其他空格或字母字符,......)确保在导入数据之前对数据进行了良好的预处理到目的地


0
投票

一个环境中的数据与另一个环境不同。在失败的环境中,您有一些无法转换为INT的varchar数据。

© www.soinside.com 2019 - 2024. All rights reserved.