当我尝试运行我的包时出现以下错误。我是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选项)
答案 0 :(得分:5)
当其中一个任务背后的基础数据发生变化时,VS_NEEDSNEWMETADATA会显示出来。最快的解决方案可能是删除并重新创建每个抛出错误的元素。
答案 1 :(得分:3)
如何禁用验证检查?
就像您右键单击源或目标组件并选择属性一样,您将获得名为validateExternalMetadata的属性,将其设置为false并尝试。
此解决方案对我有用。
答案 2 :(得分:1)
这通常发生在您的架构发生了变化,而不是压力,只需双击您的输入和输出,它应该自行解决
答案 3 :(得分:0)
确保您的连接有效。如果您使用的是动态连接,请尝试设置选项"延迟验证"在包或数据流上为true。
答案 4 :(得分:0)
在我的情况下,目标表结构与OLEDB组件中的matadata不匹配。我添加了我忘记添加的缺失列,之后它被修复了。
答案 5 :(得分:0)
经过一些研究(检查以提取自己的结论:this和this one),我认为当出现问题时,我找到了一个不错的解决方法元数据来自Ole DB
对象,但仅用于特定情况。
问题是,当您更改列名称 /删除列/添加列时,除了更新元数据外,您什么也做不了。
但是,如果您使用SQL query
从对象中检索数据,则在不需要更新查询本身的情况下 ,您将如果查询仍然可以询问想要的内容,则不需要更新元数据。基本上,如果查询仍然有效。
我已经在自己的ETL中进行了尝试,并更改了一个Ole DB
对象,该对象正在从Excel
文件中读取数据,目标是一个sheet
,然后我拥有了所有列标签中选择。
将其更改为SQL query
即可检索整张纸,例如:
SELECT * FROM ['Sheet_Name$']
完全解决了我的情况,甚至在标头中引入了具有不同元数据的文件。