由于临时表导致 SSIS 包中元数据检索失败
在 SSIS 中,从临时表检索元数据有时会导致包失败错误:“未指定的错误。OLE DB 记录可用。无法确定元数据,因为语句 'select * from “##TmpMcsConfigurationDeviceHistory86B34BFD041A430E84CCACE78DA336A1”使用临时表。“
当程序包尝试访问名为“##TmpMcsConfigurationDeviceHistory”的全局临时表时,会出现此问题。该错误表明 SSIS 无法动态确定临时表的元数据。
解决方案
要解决此问题,您可以显式定义临时表的元数据使用WITH RESULT SETS 子句的表。这为 SSIS 预先提供了必要的信息,无需动态确定元数据,否则可能会导致临时表失败。
带有结果集的示例查询:
EXEC (' CREATE TABLE #a ( MyIntegerColumn INT NOT NULL, MyTextColumn VARCHAR(50) NULL, MyOtherColumn BIT NULL ) INSERT INTO #a ( MyIntegerColumn, MyTextColumn, MyOtherColumn ) SELECT 1 AS MyIntegerColumn, ''x'' AS MyTextColumn, 0 AS MyOtherColumn SELECT MyIntegerColumn, MyTextColumn, MyOtherColumn FROM #a') WITH RESULT SETS ( ( MyIntegerColumn INT NOT NULL ,MyTextColumn VARCHAR(50) NULL ,MyOtherColumn BIT NULL ) )
通过显式提供元数据,SSIS 可以避免从临时表动态检索元数据,从而消除错误并使包能够成功获取元数据。
以上是为什么我的 SSIS 包在从临时表检索元数据时失败?的详细内容。更多信息请关注PHP中文网其他相关文章!