ssis包验证错误ole db source failed

时间:2014-09-12 21:07:20

标签: sql ssis-2012

当我尝试运行我的包时出现以下错误。我是ssis的新手。有什么建议。 Tahnks

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

包验证错误(包验证错误)

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

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

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

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

(Microsoft.DataTransformationServices.VsIntegration)


计划地点:

at Microsoft.DataTransformationServices.Project.DataTransformationsPackageDebugger.ValidateAndRunDebugger(Int32 flags,IOutputWindow outputWindow,DataTransformationsProjectConfigurationOptions options)    在Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchDtsPackage(Int32 launchOptions,ProjectItem startupProjItem,DataTransformationsProjectConfigurationOptions选项)    在Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchActivePackage(Int32 launchOptions)    在Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.LaunchDtsPackage(Int32 launchOptions,DataTransformationsProjectConfigurationOptions选项)    在Microsoft.DataTransformationServices.Project.DataTransformationsProjectDebugger.Launch(Int32 launchOptions,DataTransformationsProjectConfigurationOptions选项)

6 个答案:

答案 0 :(得分:5)

当其中一个任务背后的基础数据发生变化时,VS_NEEDSNEWMETADATA会显示出来。最快的解决方案可能是删除并重新创建每个抛出错误的元素。

答案 1 :(得分:3)

如何禁用验证检查?

就像您右键单击源或目标组件并选择属性一样,您将获得名为validateExternalMetadata的属性,将其设置为false并尝试。

此解决方案对我有用。

答案 2 :(得分:1)

这通常发生在您的架构发生了变化,而不是压力,只需双击您的输入和输出,它应该自行解决

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

经过一些研究(检查以提取自己的结论:thisthis one),我认为当出现问题时,我找到了一个不错的解决方法元数据来自Ole DB对象,但仅用于特定情况

问题是,当您更改列名称 /删除列/添加列时,除了更新元数据外,您什么也做不了。

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

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

将其更改为SQL query即可检索整张纸,例如:

SELECT * FROM ['Sheet_Name$']

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