Échec de la récupération des métadonnées dans le package SSIS en raison d'une table temporaire
Dans SSIS, la récupération des métadonnées des tables temporaires peut parfois entraîner l'échec du package avec l'erreur : "Erreur non spécifiée. Un enregistrement OLE DB est disponible. Les métadonnées n'ont pas pu être déterminées car l'instruction 'select * from '##TmpMcsConfigurationDeviceHistory86B34BFD041A430E84CCACE78DA336A1'' utilise une table temporaire. L'erreur indique que SSIS n'est pas en mesure de déterminer dynamiquement les métadonnées de la table temporaire.
RésolutionPour résoudre ce problème, vous pouvez définir explicitement les métadonnées de la table temporaire. table à l’aide de la clause WITH RESULT SETS. Cela fournit à SSIS les informations nécessaires à l'avance, éliminant ainsi le besoin de déterminer dynamiquement les métadonnées, ce qui peut entraîner des échecs pour les tables temporaires.
Exemple de requête avec WITH RESULT SETS :
En fournissant explicitement les métadonnées, SSIS peut éviter de les récupérer dynamiquement à partir de la table temporaire, éliminant ainsi l'erreur et permettant au package de récupérer les métadonnées avec succès.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 ) )
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!