Excel 在SQL Server 2012上部署包时出现SSIS问题

Excel 在SQL Server 2012上部署包时出现SSIS问题,excel,ssis,sql-server-2012,etl,Excel,Ssis,Sql Server 2012,Etl,我想问问题出在哪里。我在我的计算机上运行ssis包,在那里我将数据从Oracle导出到Excel,一切正常。但是,当我将此程序包部署到SQL Server 2012计算机时,该程序包会报告一个错误: 列“xx”无法在unicode和非unicode字符串数据类型之间转换 我的包看起来像这样: 这很简单,在我的电脑上一切都正常 我知道,如果我可能在包中添加数据转换,它将修复错误。但我更感兴趣的是,为什么我会这样,而不是在服务器上?错误发生在最后一个阶段,但我没有得到它。我从Oracle中选择了4

我想问问题出在哪里。我在我的计算机上运行ssis包,在那里我将数据从Oracle导出到Excel,一切正常。但是,当我将此程序包部署到SQL Server 2012计算机时,该程序包会报告一个错误:

列“xx”无法在unicode和非unicode字符串数据类型之间转换

我的包看起来像这样:

这很简单,在我的电脑上一切都正常


我知道,如果我可能在包中添加数据转换,它将修复错误。但我更感兴趣的是,为什么我会这样,而不是在服务器上?

错误发生在最后一个阶段,但我没有得到它。我从Oracle中选择了4列,并将它们以DT_WSTR格式插入Excel,所以我不知道为什么它报告在非Unicode和Unicode之间转换时出错。我解决此错误的方法如下:

ValidateExternalMetaData:False

我建议您在包中的某个地方进行从unicode到非unicode的隐式转换。SSIS不允许隐式转换,您必须是显式的。要么您需要确保在整个过程中保持unicode,要么显式转换。@Larnu但为什么它直接从我的计算机上工作?但是当我把它部署到服务器上时,它不工作吗?这应该是一样的,对吧?如果环境不同就不会了。请查阅SSIDB中的日志,查看错误发生在哪个阶段,然后您将能够跟踪该阶段并准确计算出隐式转换发生的位置。@Larnu错误发生在最后一个阶段。但我不明白。我从Oracle中选择了4列,并将它们以DT_WSTR格式插入Excel。所以我不知道为什么它报告在非unicode和unicode之间转换时出错。请您的回答解释这是如何解决问题的,以便对其他有类似问题的用户有用。对于堆栈溢出,不鼓励使用仅代码的答案,因为它们没有解释堆栈溢出是如何解决问题的。