SSIS将SQL数据库打包到Excel电子表格中的目标Unicode错误
问题描述:
我有一个数据库OLE源去往Excel目标。我收到以下错误SSIS将SQL数据库打包到Excel电子表格中的目标Unicode错误
数据流错误[Excel目标[88]]:列“X”不能在unicode和非unicode字符串数据类型之间转换。
我在数据转换中添加了将字符串列更改为Unicode。这并没有解决问题。任何指导将不胜感激
答
转到您的Excel目标组件 - >映射 - >将鼠标悬停在问题栏上,你会发现它是Unicode Str
。事情是这样的:
因此,你需要一个data conversion component
源列的别名添加到DT_WSTR Unicode String
和它在Excel目标组件映射。
我复制你的问题,从而为您提供解决方案。
IF这不起作用,然后删除这些组件并重新添加它们,因为这会大多解决您的问题。
答
尝试使用派生列,而不是数据转换改造,使用下列表达式
如果目的地是unicode
(DT_WSTR,50)[X]
否则
(DR_STR,50,1252)[X]
你可以看到你的目的地什么类型您的列正在映射。我会将您的源代码转换为appopiate数据类型。例如。从XXX.XXX选择cast(columName作为nvarchar(50)作为ColumnName - 如果它说错误,那么我会删除你的任务并重新创建并在你的语句中写入你的正确的SQL粘贴(它不能很好地处理元数据,所以你需要通过删除任务或转到高级选项来更新它)这对我工作正常 – plaidDK
检查下面的解决方案在数据转换中添加列的别名并将其映射到excel中 –
可以发布ssis解决方案的屏幕截图吗?从源和目标设置? – plaidDK