【问题标题】:SSIS (VS2008) with Oracle OLE DB SourceSSIS (VS2008) 与 Oracle OLE DB 源
【发布时间】:2014-09-26 15:33:22
【问题描述】:

我有一个奇怪的问题,在 DEV 环境中一切正常,但在 PROD SSIS 中报告有关从 unicode 转换为非 unicode 的错误。此错误发生在 OLE DB 源任务级别。所以,我什至没有机会使用派生列来执行转换。

我们在生产服务器上安装了 BIDS,任务被标记为错误。当我尝试打开属性时,它告诉我元数据与 DTSX 文件中的不同。当我接受自动更正的提议时,所有错误列的输入类型(外部和输出列)的类型都会从 DT_WSTR 切换到 DT_STR

DEV 和 PROD 中涉及的表的描述相同(列的类型相同)。如果我查询字符集,它们在两个环境中都是相同的。

查询如下:

SELECT * 
FROM v$nls_parameters 
where parameter 
       like '%CHARACTERSET'

返回:

NLS_CHARACTERSET                   WE8MSWIN1252
NLS_NCHAR_CHARACTERSET             AL16UTF16

在两种环境中。

有什么办法解决这个问题吗?

谢谢你, 米歇尔

【问题讨论】:

  • 闻起来很像您安装/配置了不同版本的驱动程序。很久以前就遇到了与 MySQL 驱动程序类似的问题。 X.Y.Z.13 版本是针对其开发的。服务器获得了驱动程序版本 X.Y.Z.14 和繁荣,无效的元数据。
  • 对不起,如果我花时间回答,但你是对的,这是问题所在。非常感谢!

标签: oracle ssis


【解决方案1】:

您可能会遇到不同机器上安装/配置的驱动程序的差异。

很久以前,我在 MySQL 驱动程序中遇到了类似的问题。 X.Y.Z.13 版是针对其开发的。服务器获得了驱动版本 X.Y.Z.14 和繁荣,无效的元数据。

您需要检查元数据的开发和生产服务器版本,并确定哪一个适合您。在我的例子中,Dev 驱动程序生成了 varchar(非 unicode)字符串,并且与目标系统对齐,而他们在 prod 中安装的较新驱动程序推断它们应该是 nvarchar(unicode)字符串。将 nvarchar 重新工作为 varchar 或更改表超出了项目允许的时间范围,并且数据管理团队用于创建表的疯狂规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多