【问题标题】:SSIS problem deploying package on SQL Server 2012在 SQL Server 2012 上部署包的 SSIS 问题
【发布时间】:2021-01-22 07:13:22
【问题描述】:

我想问一下问题可能是什么。我在我的计算机上运行 ssis 包,在那里我将数据从 Oracle 导出到 Excel,一切正常。但是当我将这个包部署到我的 SQL Server 2012 机器上时,包会报错:

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

我的包裹是这样的:

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

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

【问题讨论】:

  • 我建议您在 somewhere 在您的包中进行从 unicode 到非 unicode 的隐式转换。 SSIS 不允许隐式转换,您必须是显式的。要么你需要确保你在整个过程中保持 unicode,要么显式转换。
  • @Larnu 但是为什么它可以直接在我的电脑上运行呢?但是当我将它部署到服务器时,它不起作用吗?那应该是一样的吧?
  • 如果环境不同则不会。查阅 SSISDB 中的日志并查看错误发生在哪个阶段,然后您将能够跟踪并准确确定隐式转换发生的位置。
  • @Larnu 错误发生在最后阶段。但我不明白。我从 Oracle 中选择 4 列并将它们以 DT_WSTR 格式插入 Excel。所以我不知道为什么它在非unicode和unicode之间转换时会报错。

标签: excel ssis sql-server-2012 etl


【解决方案1】:

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

ValidateExternalMetaData: False

【讨论】:

  • edit您的回答解释这是如何解决问题的,以便对其他有类似问题的用户有用。在 Stack Overflow 上不鼓励仅使用代码的答案,因为它们没有解释它是如何解决问题的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-28
  • 1970-01-01
  • 1970-01-01
  • 2013-11-24
  • 1970-01-01
相关资源
最近更新 更多