2017-10-16 63 views
1

我有一个数据库OLE源去往Excel目标。我收到以下错误SSIS将SQL数据库打包到Excel电子表格中的目标Unicode错误

数据流错误[Excel目标[88]]:列“X”不能在unicode和非unicode字符串数据类型之间转换。

我在数据转换中添加了将字符串列更改为Unicode。这并没有解决问题。任何指导将不胜感激

+0

你可以看到你的目的地什么类型您的列正在映射。我会将您的源代码转换为appopiate数据类型。例如。从XXX.XXX选择cast(columName作为nvarchar(50)作为ColumnName - 如果它说错误,那么我会删除你的任务并重新创建并在你的语句中写入你的正确的SQL粘贴(它不能很好地处理元数据,所以你需要通过删除任务或转到高级选项来更新它)这对我工作正常 – plaidDK

+0

检查下面的解决方案在数据转换中添加列的别名并将其映射到excel中 –

+0

可以发布ssis解决方案的屏幕截图吗?从源和目标设置? – plaidDK

回答

0

转到您的Excel目标组件 - >映射 - >将鼠标悬停在问题栏上,你会发现它是Unicode Str。事情是这样的:

img

因此,你需要一个data conversion component源列的别名添加到DT_WSTR Unicode String它在Excel目标组件映射。

img2

我复制你的问题,从而为您提供解决方案。

IF这不起作用,然后删除这些组件并重新添加它们,因为这会大多解决您的问题。

+0

这就是我所做的,但我仍然得到这个问题 – sql2015

+0

希望你已经创建了别名并将其映射到目的地,尝试删除它们并再次重复(如果可能,在另一个包中)。有时候会发生缓存没有刷新。 –

+0

感谢您的反馈,我从一开始就开始了,但仍然没有运气。我真的不知道为什么这不起作用ing – sql2015

0

尝试使用派生列,而不是数据转换改造,使用下列表达式

如果目的地是unicode

(DT_WSTR,50)[X] 

否则

(DR_STR,50,1252)[X] 
相关问题