gpt4 book ai didi

sql - 在不使用数据转换的情况下更新 ssis 中的表

转载 作者:行者123 更新时间:2023-12-02 02:03:23 25 4
gpt4 key购买 nike

每当我尝试在 ssis 中将表从源表更新到目标表(sql server 到 sql server)时,我都会运行一个带有更新查询的存储过程。我通过 OLE DB 命令执行此 SP。现在要运行 OLE DB 命令,我必须执行从 DT_WSTR 到 DT_STR 的数据转换。

enter image description here

我的问题是:是否可以在没有此数据覆盖的情况下执行更新?让我感到困惑的是,我正在从 sql server 中提取数据并将数据推送到 sql server。那么为什么 varchar 具有不同的数据编码(DT_WSTR 和 DT_STR)?

但是如果我只是做一个插入,即没有更新(使用 OLE DB 命令)我不需要做任何转换并且我的 SSIS 包工作正常。现在 DT_WSTR 和 DT_STR 没有问题,但只有当我尝试运行 OLE DB 命令时才会出现问题。 ssis 现在如何将数据从 nvarchar 插入到 varchar?

enter image description here

如果这是一个愚蠢的问题,我很抱歉。我对 SSIS 很陌生。

最佳答案

您用来连接到 SQL AzureADO.NET 源似乎默认将 varchar 转换为 nvarchar 。由于目前 OLEDB 源不能用于连接到 SQL Azure,在我的例子中,这将为您提供正确的列数据类型,因此您只能使用 Data ConversionDT_WSTR 转换为 DT_STR

有一个Microsft Connect item这显示了 ADO.NET source

的这个问题
 DECLARE @column_value AS NVARCHAR(30)
SET @column_value = ?
UPDATE YOURTABLE
SET column1=convert(varchar(30),@column_value)

关于sql - 在不使用数据转换的情况下更新 ssis 中的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16140246/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com