【问题标题】:ssis Package validation error ole db source failedssis 包验证错误 ole db 源失败
【发布时间】:2014-09-12 21:07:19
【问题描述】:

当我尝试运行我的包时出现以下错误。我是新来的。有什么建议。塔恩克斯

====================================

包验证错误(Package Validation Error)

====================================

数据流任务 [SSIS.Pipeline] 出错:“OLE DB 源”验证失败并返回验证状态“VS_NEEDSNEWMETADATA”。

数据流任务 [SSIS.Pipeline] 出错:一个或多个组件验证失败。

数据流任务出错:任务验证期间出现错误。

(Microsoft.DataTransformationServices.VsIntegration)


节目地点:

在 Microsoft.DataTransformationServices.Project.DataTransformationsPackageDebugger.ValidateAndRunDebugger(Int32 标志,IOutputWindow outputWindow,DataTransformationsProjectConfigurationOptions 选项) 在 Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchDtsPackage(Int32 launchOptions,ProjectItem startupProjItem,DataTransformationsProjectConfigurationOptions 选项) 在 Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchActivePackage(Int32 启动选项) 在 Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchDtsPackage(Int32 启动选项,DataTransformationsProjectConfigurationOptions 选项) 在 Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.Launch(Int32 launchOptions, DataTransformationsProjectConfigurationOptions 选项)

【问题讨论】:

    标签: sql ssis-2012


    【解决方案1】:

    VS_NEEDSNEWMETADATA 在其中一项任务背后的基础数据发生更改时显示。最快的解决方案可能是删除并重新创建每个引发错误的元素。

    【讨论】:

      【解决方案2】:

      禁用验证检查怎么样?

      如果您右键单击源或目标组件并选择属性,那么您将拥有名为 validateExternalMetadata 的属性,将其设置为 false 并尝试。

      这个解决方案对我有用。

      【讨论】:

        【解决方案3】:

        如果您的架构发生更改,通常会发生这种情况,不要强调,只需双击您的输入和输出,它应该会自行解决

        【讨论】:

          【解决方案4】:

          确保您的连接有效。如果您使用的是动态连接,请尝试在包或数据流上设置选项“延迟验证”= true。

          【讨论】:

            【解决方案5】:

            在我的情况下,目标表结构与 OLEDB 组件中的元数据不匹配。我添加了我忘记添加的缺失列,之后它被修复了。

            【讨论】:

              【解决方案6】:

              经过一番研究(检查以提取您自己的结论:thisthis one),我想我找到了一个很好的解决方法,当元数据的问题来自Ole DB 对象,但仅适用于非常具体的情况

              问题是,当您更改列名称/删除列/添加列时,您只能更新元数据。

              但是,如果您使用SQL query 从对象中检索数据,在这种情况下您不需要更新查询本身,您将不需要如果查询仍然可以询问它想要的内容,则更新元数据。基本上,如果查询仍然有效。

              我已经在自己的 ETL 中尝试过,并更改了一个 Ole DB 对象,该对象正在从 Excel 文件中读取数据,目标是一个 sheet,然后我在选项卡中选择了所有列。

              将其更改为 SQL query 以检索完整的工作表,例如:

              SELECT * FROM ['Sheet_Name$']
              

              完全解决了我的问题,甚至在标题中引入了具有不同元数据的文件。

              【讨论】:

              • 当心 SELECT * 打开了各种问题的大门。
              猜你喜欢
              • 2016-11-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-04-21
              • 1970-01-01
              相关资源
              最近更新 更多