SSIS 错误:尝试向数据流任务缓冲区添加行失败,错误代码为 0xC0047020
Posted
技术标签:
【中文标题】SSIS 错误:尝试向数据流任务缓冲区添加行失败,错误代码为 0xC0047020【英文标题】:SSIS ERROR: The attempt to add a row to the Data Flow task buffer failed with error code 0xC0047020 【发布时间】:2016-01-22 13:19:16 【问题描述】:我的 SSIS 进程有问题(实际上两个不同的进程会出现同样的问题)。所以,我们正在使用 SSIS 做一些 ETL 工作。我们有商业智能项目,它可以在 Visual Studio 中正常执行。但是,当它部署在服务器上并安排为作业时,它会失败并出现以下错误:
INTRASTAT_Towar:Error: SSIS Error Code
DTS_E_PROCESSINPUTFAILED. The ProcessInput
method on component "Union All 3" (876) failed with error
code 0xC0047020 while processing input "Union All Input
2" (916). The identified component returned an error from
the ProcessInput method. The error is specific to the
component, but the error is fatal and will cause the Data
Flow task to stop running. There may be error messages
posted before this with more information about the failure.
INTRASTAT_Towar:Error: SSIS Error Code
DTS_E_PRIMEOUTPUTFAILED. The PrimeOutput
method on istat_dekl_wynik_poz SELECT returned error
code 0xC02020C4. The component returned a failure
code when the pipeline engine called PrimeOutput(). The
meaning of the failure code is defined by the component,
but the error is fatal and the pipeline stopped executing.
There may be error messages posted before this with
more information about the failure.
INTRASTAT_Towar:Error: The attempt to add a row to the
Data Flow task buffer failed with error code 0xC0047020.**
其他返回的错误类似,有时不是0xC0047020,而是未指定的错误。错误只发生在这张表上,它在数据流任务中有很多不同的东西(联合、多播、条件拆分)。大多数其他数据流只有源、目标和转换,它们不会引起任何问题。有人建议我尝试为数据流任务操作 DefaultBufferMaxRows 和 DefaultBufferSize 属性值,但是在做了一些研究之后,我不相信它会解决问题,因为它们当前设置为默认值。有什么建议吗?
【问题讨论】:
There may be error messages posted before this with more information about the failure
这是 SSIS 的 2005/2008 版本还是 2012+ 版本?
我今天也有同样的问题。我使用 SSIS 2012。代码在 QA 环境中工作。所以细节表明这是一个数据问题
【参考方案1】:
好吧,我设法用我的包裹解决了这个问题。我使用的是 2012 SSIS 版本,但我在 BIDS 的 32 位环境中执行包。服务器实际上以 64 位执行,并且对于某些项目来说,这是问题所在。步骤属性中的一个复选框,使其在 32 位环境中执行,我解决了我们已经解决了数周的问题。
【讨论】:
嗨,复选框在哪里? 有同样的问题...我想我是在数据流任务的属性下找到的,ForceExecutionValueType 字段? 很抱歉,我已经一年多没有在那里工作了,但这是我相信服务器上的 Job Scheduler 的属性。每个作业都由单个步骤组成,这些步骤具有不同的属性。 可能会迟到,但也许它可以帮助您或其他人:您可以从 SQL 作业代理中找到 SSIS 作业步骤上的复选框。在作业步骤上,停留在“常规”上,转到“配置”选项卡,转到“高级”子选项卡,您将在底部看到一个复选框“32 位运行时”。这将使这个作业步骤在 32 位 (X86) 中运行。【参考方案2】:对于那些因为同样的错误而跌跌撞撞的人。如果您尝试使用 SQL Server 导入和导出向导将数据从一个 Azure SQL 数据库复制到另一个。使用 64 位版本。
在您的 Windows 中搜索 SQL Server 2019 导入和导出数据(64 位)。
【讨论】:
以上是关于SSIS 错误:尝试向数据流任务缓冲区添加行失败,错误代码为 0xC0047020的主要内容,如果未能解决你的问题,请参考以下文章