3

我正在开发集成服务,遇到了一个奇怪的错误。

我的数据流包括:

                                         -> DESTINATION
SOURCE -> SCRIPT_COMPONENT -> MULTICAST /
                                        \-> DESTINATION

此错误总是发生,但与正在处理的列不同:

Error: 0xC0202009 at *STAFF_MIGRATION*, *STAFF_BASE* [627]: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E21.
An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 10.0"  Hresult: 0x80040E21  Description: "Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.".
Error: 0xC020901C at *STAFF_MIGRATION*, *STAFF_BASE* [627]: There was an error with input column "*LAST_UPDATED_BY*" (651) on input "OLE DB Destination Input" (640). The column status returned was: "The status value given to the provider was not valid.".

该列LAST_UPDATED_BY有时会有所不同LAST_UPDATE_DATE

奇怪的行为是,如果我沿着通往目的地的路径添加数据查看器,则不会发生这种情况。

有任何想法吗?

编辑:我在 VS/BIDS 2008 SPI 和 SQL Server 2008 (RTM) x64 SP1 上运行。

编辑:我现在在 SQL Server SP3 上运行,并且仍然出现这种行为。

4

1 回答 1

1

我认为我的理论可能是正确的。当我放置一个数据查看器时,这意味着它需要构建数据集供我在插入之前查看。所以必须建立列的值。我通过将目标设置为打算进行批量插入的快速加载表找到了解决方案。这意味着它将有时间构建数据并且不会遇到列的无效值。这只是一个疯狂的猜测,但它有效

于 2012-12-14T06:17:52.623 回答