1

我正在尝试创建一个用于在 MSSQL 和 MYSQL 之间进行集成的 SSIS 包。我之前没有使用 Bids 或 SSIS 并遵循此处的说明的经验。

我将 OLE DB 源、查找、条件拆分、OLE DB 目标和 OLE DB 命令组件添加到数据流,并将连接管理器和列映射配置到条件拆分组件。

从这里开始,我面临两个问题 -

1) 配置 OLE DB 目标后,它会在组件上显示错误符号could not convert between unicode and non unicode string datatypes. 为了解决这个问题,我尝试在条件拆分和目标之间插入一个数据转换组件,并为有问题的列配置它。但这似乎没有帮助

2) 配置 OLE DB 命令时,列映射选项卡中的右侧列显示零列。我已经添加了带有问号的 Sql 命令,所以如果我没记错的话,我想它应该显示名为“Param_0”、“Param_1”等的列。我什至尝试从输入和输出属性选项卡手动添加它们,但随后显示警告,external columns for OLE DB command are out of sync with data source

我在这里想念什么?

谢谢

4

2 回答 2

1

您描述第一个问题的方式,听起来应该可行。这里有几件事要检查。

  1. 数据转换组件为转换后的数据创建一个新列。确保您在以下转换和目标中引用它。
  2. 右键单击数据转换组件并选择高级编辑器。在高级编辑器中选择输入和输出属性选项卡。展开树视图的数据转换输出分支并选择您的新列。确保数据类型属性也显示您要转换的数据类型。如果这些值不正确,则组件中的设置不正确。

对于您的第二个问题,该问题通常是由 SqlCommand 值错误引起的。首先,确保 Connection Manager 选项卡上的 Connection Manager 是正确的。切换到列映射选项卡。在表单底部附近,可能会出现一条警告消息,指示无法准备 SQL 语句。换句话说,SSIS 无法弄清楚该语句应该做什么。解决 SQL 语句的任何问题并切换回 Column Mappings 选项卡。一旦可以解析 SQL 语句,这些列就会出现。

于 2011-01-14T18:57:58.370 回答
0

如果您想避免转换问题,请将目标表列类型从 char/varchar 更改为 nchar/nvarchar。我很确定您将需要为 mysql 源和目标使用 ADO 连接器,您应该能够从 mysql 源读取数据并写入 mssql 数据库,而无需使用源和目标组件以外的任何东西。

于 2011-01-14T22:27:10.980 回答