【问题标题】:SSIS solution - Developed with 32-bit ODBC driver. Need to make some tweaks to the solution to run with 64-bit ODBC driverSSIS 解决方案 - 使用 32 位 ODBC 驱动程序开发。需要对解决方案进行一些调整以使用 64 位 ODBC 驱动程序运行
【发布时间】:2018-07-27 21:31:26
【问题描述】:

目前我们有一个解决方案在 DEV 环境中的 32 位 ODBC 驱动程序下运行良好,而这个 32 位 ODBC 驱动程序在 PROD 中不存在。不过,PROD 中有一个 64 位的 ODBC 驱动程序。我最初尝试让它在 64 位版本的驱动程序下运行,但它给了我错误。

如何让 64 位 ODBC 连接为我们在 PROD 中的包工作。我必须对现有解决方案进行哪些更改?

【问题讨论】:

  • 了解您遇到的错误在这里会有很大帮助。 SQL Server 和 ODBC 有这样的选择,我几乎不知道从哪里开始。 /s
  • 我们需要更多信息,即使您只是复制/粘贴遇到的错误。我做了同样的事情并且多次没有错误,但有时会出现问题,例如正在使用的不推荐使用的函数。
  • 创建 SQL Server 代理作业以运行包。在作业步骤的属性中,您可以指定必须使用 64 位运行时。
  • 我得到的错误——“ODBC 源”验证失败并返回验证状态“VS_NEEDSNEWMETADATA”@LaughingVergil
  • VS_NEEDSNEWMETADATA 错误意味着存储在包中的元数据与实际数据源不同步。通常,修复方法是右键单击返回错误的数据源并选择编辑。 SSIS 应该会提示您一个问题,询问它是否应该修复元数据。选择“是”通常可以解决问题。为了安全起见,您可能希望对包中的所有数据源执行此操作。如果您没有被问及修复元数据,请不要费心重新保存该数据源。

标签: sql-server sql-server-2005 ssis odbc


【解决方案1】:

好的。我让它工作了。

我在 Visual Studio 中使用 32 位 ODBC **Unicode 驱动程序,在 SQL Server 代理中使用 64 位 ODBC **ANSI 驱动程序。 元数据不同步是因为 Unicode 和 ANSI 驱动程序的差异。

解决方案:在包中的所有源或目标组件上将 validateExternalMetadata 属性设置为“false”

【讨论】:

    【解决方案2】:

    应该的。如果 64 位 ODBC 驱动程序使用 int 大小的不同元数据,我一点也不感到惊讶

    【讨论】:

    • 我让它工作了。请参阅我的以下评论以获取解决方案。非常感谢您的建议@Laughing Vergil :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多