我有一个执行此任务的数据流任务:
问题是,在插入过程中,它抱怨列'a'和参数'1':
无法在Unicode和非Unicode字符串数据类型之间进行转换。
我查找了这个StackFlow建议,将列'a'更改为(DT_WSTR)字符串。但是,该列已被设置为该数据类型。
列“A”实际上没有直接从数据库抓取,而是恒定的值
SELECT 'abc'+ FORMAT(GETDATE(),'yyyyMMdd') + 'zz208874' AS a
知道我在做什么错吗?
答案 0 :(得分:1)
我认为主要问题是如何在OLEDB Command
中解析查询以及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
有关参数数据类型解析问题的更多信息,可以检查以下问题的答案: