ホームページ >データベース >mysql チュートリアル >一時テーブルからメタデータを取得するときに SSIS パッケージが失敗するのはなぜですか?

一時テーブルからメタデータを取得するときに SSIS パッケージが失敗するのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-29 05:13:10696ブラウズ

Why Does My SSIS Package Fail When Retrieving Metadata from Temporary Tables?

一時テーブルによる SSIS パッケージのメタデータ取得エラー

SSIS では、一時テーブルからメタデータを取得すると、パッケージが次のエラーで失敗することがあります。エラー: 「不明なエラー。OLE DB レコードが利用可能です。ステートメント 'select のため、メタデータを特定できませんでした」 * '##TmpMcsConfigurationDeviceHistory86B34BFD041A430E84CCACE78DA336A1'' は一時テーブルを使用しています。

この問題は、パッケージが "##TmpMcsConfigurationDeviceHistory" という名前のグローバル一時テーブルにアクセスしようとすると発生します。このエラーは、SSIS が一時テーブルのメタデータを動的に決定できないことを示しています。

解決策

この問題を解決するには、一時テーブルのメタデータを明示的に定義できます。 WITH RESULT SETS 句を使用してテーブルを作成します。これにより、SSIS に必要な情報が事前に提供されるため、一時テーブルのエラーにつながる可能性があるメタデータを動的に決定する必要がなくなります。

WITH RESULT SETS を使用したサンプル クエリ:

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。