2

一部の Excel ファイルのインポートには、SSIS for Visual Studio 2017 を使用します。

特定のパッケージを呼び出していくつかのファイルを処理するいくつかのループ コンテナーを含むパッケージを作成しました。列のデータがExcelファイルごとにNULLであると一見ランダムに判断するという点で、実行されている特定のパッケージに問題があります。これは、次の場所にあるレジストリ設定の一部であるという印象を受けましたTypeGuessRows(最初は0に変更され、テストとして1000に変更されました)。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Access Connectivity Engine\Engines\Excel

これは、持ち込まれる各種ファイルは基本的に同じデータが入っているためだと思いますが、元データの列の最初の数行が数字のみの場合、値が混在するデータが正しく取り込まれないようです。 . これ以外のすべての列は問題ないようです。

ソース ファイルを見ると、すべて同じデータ型になっています。レジストリTypeGuessRows値を変更してみて、出力列のプロパティが数値ではなく文字列ベースであることを確認しました。接続文字列にはIMEX=1

4

2 に答える 2

1

だから私はそれを修正しました。または、少なくとも私の状況で誰かを助ける十分な回避策を見つけました。SSISのキャッシュに関係していると思います。問題の列に並べ替え関数を配置して、ランダムなデータ型を持つために NULL として読み取られるレコードが最初に読み取られ、ランダムとは見なされないようにしました。最初にこれを試してみましたが、うまくいきませんでした。 同じパッケージで新しいデータ フローを作成するという小さな実験を通じて、このソリューションが実際に機能することを発見したため、キャッシュが問題であると考えました。これについてさらに質問がある場合は、お知らせください。

于 2019-06-06T19:31:04.610 に答える