【问题标题】:SSIS Error: "ODBC Source" failed validation and returned validation status "VS_NEEDSNEWMETADATA"SSIS 错误:“ODBC 源”验证失败并返回验证状态“VS_NEEDSNEWMETADATA”
【发布时间】:2019-09-02 14:52:16
【问题描述】:

我有一个 SSIS 项目,去年我没有遇到任何问题。我可以在 Visual Studio 2019 中执行未更改的包而不会出现问题,并且可以作为 SSMS 中的 SQL 代理作业。

但是,如果我在数据任务中打开数据流 ODBC 源,系统会提示我更新输出列上的元数据。无论我选择是或否并且不对包进行其他更改,我都会在执行时收到以下错误:

“ODBC Source”验证失败,返回验证状态“VS_NEEDSNEWMETADATA”。

我认为可能导致此错误的唯一更改是我在服务器上从 Visual Studio 2017 更新到 Visual Studio 2019。我确实在我的本地计算机上使用 VS 2019 并且遇到了同样的问题。

ODBC 源正在使用 SQL Anywhere 17 32 位驱动程序。

我已经尝试了以下并在执行时继续收到错误:

  • 重新创建了数据流任务、ODBC 连接管理器和包。
  • 使用 DTEXEC /FILE 运行包。
  • 在 ODBC 源上将 ValidateExternalMetadata 设置为 False
  • 确认数据源上的外部和输出列具有相同的数据类型

编辑: 我在 VS 2017 中使用相同的数据流任务创建了一个新项目。我可以运行和编辑 ODBC 源,而不会在执行时出现任何元数据错误。我在 VS 2019 中打开了项目,打开 ODBC 源后,系统提示我更新元数据。然后在执行时,我收到“VS_NEEDSNEWMETADATA”错误。有关在 VS 2019 中纠正此问题的任何想法?

【问题讨论】:

    标签: sql-server ssis odbc etl sqlanywhere


    【解决方案1】:

    尝试将 ODBC Source ValidateExternalMetadata 属性更改为 False,有关详细信息,您可以在以下链接中查看 Matt Masson 的 (SSIS 前项目经理) 答案:

    另外,请确保您从项目配置中选择了正确的 TargetServerVersion 属性:

    【讨论】:

    • 谢谢哈迪。我按照原始请求中的说明尝试了此操作,但在 VS 2019 中仍然出现执行错误。奇怪的是,如果我使用 VS 2017 将 ValidateExternalMetadata 更改为 false,保存并关闭包,然后我可以在 VS 2019 中打开相同的包,编辑/执行 ODBC 源,没有任何元数据错误。在 VS 2017 中修改我所有的工作包似乎需要做很多工作,以便我可以在 VS 2019 中修改它们。
    • @Hslew 是否将TargetServerVersion 设置为正确的 SQL Server 版本?
    • SQL Server 2017。是这个问题吗?
    • @Hslew 安装的 SQL Server 版本是什么
    • 版本 14.0.1000.169
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多