gpt4 book ai didi

sql - SSIS 'Column' 和 'Parameter' 无法在 unicode 和非 unicode 字符串数据类型之间转换

转载 作者:行者123 更新时间:2023-12-02 00:55:36 26 4
gpt4 key购买 nike

我有一个执行此操作的数据流任务:

  1. 从两个不同的 OLE DB 源,运行 SQL 命令以选择一些数据
  2. 合并加入两个数据库源
  3. 查找不同的SQL DB Source,检查数据是否已经存在
  4. 根据查找匹配输出与查找不匹配输出,使用不同的输入参数运行 INSERT 语句。

enter image description here

问题是,在插入期间,它提示列“a”和参数“1”:

Cannot convert between unicode and non-unicode string data types.

我查阅了这个 StackFlow 建议,将列“a”更改为 (DT_WSTR) 字符串。但是,该列已设置为该数据类型。

a列其实不是直接从数据库中抓取的,而是一个常量值

SELECT 'abc'+ FORMAT(GETDATE(),'yyyyMMdd') + 'zz208874' AS a

知道我做错了什么吗?

最佳答案

我认为主要问题是查询在 OLEDB 命令 中的解析方式以及 SQL Server 数据库引擎如何定义参数数据类型。

尝试使用 CAST() 函数来避免这种情况:

 SELECT CAST('abc'+ FORMAT(GETDATE(),'yyyyMMdd') + 'zz208874' as VARCHAR(255)) AS a

或者,如果您希望转换为 unicode:

SELECT CAST('abc'+ FORMAT(GETDATE(),'yyyyMMdd') + 'zz208874' as NVARCHAR(255)) AS a

或者,您可以将字符串定义为 Unicode:

SELECT N'abc'+ FORMAT(GETDATE(),'yyyyMMdd') + N'zz208874' AS a

关于参数数据类型解析问题的更多信息,您可以查看我对以下问题的回答:

关于sql - SSIS 'Column' 和 'Parameter' 无法在 unicode 和非 unicode 字符串数据类型之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54488051/

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