SSIS 数据转换转换类似于 SQL 函数 CAST 或 CONVERT。因此,如果您希望将数据从一种数据类型转换为另一种数据类型,那么 SSIS 数据转换是最佳选择。但请确保列中的数据兼容,并且不要忘记为 Varchar 和 NVarchar 数据类型更改列长度。
在这里,我们将使用 SSIS 数据转换将 DimProducts Excel 工作簿中的数据导出到 SQL Server 数据库表,方法是将数据类型从 DT_NTEXT 转换为 DT_WSTR。
下图显示了 DimProducts Excel 文件中的记录。

SSIS 数据转换转换示例
步骤 1:将数据流任务从工具箱拖放到控制流中并重命名。

双击它,它将打开数据流选项卡。接下来,从工具箱将 EXCEL 源和 SSIS 数据转换转换拖放到数据流区域。
请参考 SQL Server 中的 CAST 和 CONVERT。有关更多转换 >> 点击此处。

步骤 3:双击数据流区域中的 Excel 源以打开 连接管理器 设置。它提供了一个选项来选择包含源数据的表。我们正在选择本地硬盘驱动器上的 DimProducts.xls 文件。

我们正在选择 DimProducts.xls 中存在的 Product Destination 表。

单击列选项卡以验证列。在此选项卡中,我们也可以取消选中不需要的列。

单击“确定”,然后将蓝色箭头从 Excel 源拖到 SSIS 数据转换转换。它将允许转换使用源数据。
步骤 5:双击或右键单击数据转换转换以进行编辑,并将我们源列的数据类型转换为所需的数据类型和长度。同样,您可以将 int 转换为 string。

我们使用表描述作为 SSIS 数据转换目标表。
CREATE TABLE [dbo].[DimProduct] ( [ProductKey] [int] IDENTITY(1,1) NOT NULL, [EnglishProductName] [nvarchar](50) NOT NULL, [Color] [nvarchar](50) NOT NULL, [ListPrice] [money] NULL, [DealerPrice] [money] NULL, [EnglishDescription] [nvarchar](400) NULL, [SalesAmount] [money] NOT NULL, CONSTRAINT [PK_DimProduct_ProductKey] PRIMARY KEY CLUSTERED ( [ProductKey] ASC ) ) GO
在将数据传输到目标表之前,我们必须更改数据类型,以便 Excel 列与目标表匹配。
注意:在从 Excel 传输到 SQL Server 数据库期间,转换数据类型始终是必需的。
步骤 6:将数据类型从 DT_NTEXT 更改为 DT_WSTR,并且不要忘记更改长度。

大多数情况下,智能会自动更改数据类型。但是,有时我们必须自己完成。单击确定
步骤 7:现在,我们需要提供目标的服务器、数据库和表详细信息。因此,双击 OLE DB Destination 并提供所需的信息。

步骤 8:单击 SSIS 映射选项卡以检查源列是否已准确映射到目标列。

如果忘记转换,由于从 DT_NTEXT 到 DT_WSTR 的数据转换,它将失败。让我们映射正确的列,然后单击确定以完成我们的 SSIS 数据转换包设计。让我们运行该包。

检查结果

评论已关闭。