SSISダイアログでExcelソースを使用してこれをインポートしようとしていると思いますか?
その場合、問題はおそらく、SSIS が Excel ソースを作成するときに、スプレッドシートの先頭でいくつかの行をサンプリングすることです。 [ShortDescription] 列に大きすぎるものがない場合は、デフォルトで 255 文字のテキスト列になります。
そのため、大量のデータを含む行を含む列から切り捨てなしでデータをインポートするには、次の 2 つのオプションがあります。
<オール>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
の下の TypeGuessRows の値を増やすことで、サンプリングされる行数を増やすことができます (システムが x64 の場合、HKEY_LOCAL_MACHINE\SOFTWARE\wow6432node\Microsoft\Jet\4.0\Engines\Excel
の下) )レジストリ キー。詳細については、次の 2 つのリンクを参照してください:
- http://waxtadpole.wordpress.com/2008/04 /28/ハローワールド/
- http://technet.microsoft.com/en-us/ライブラリ/ms141683.aspx
さらに説明すると、SSIS はウィザードの背後で 3 つのオブジェクトを作成します。Excel データ ソース オブジェクト、SQL テーブル変換先オブジェクト、およびそれらの間のデータ フロー演算子です。 Excel ソース オブジェクトはソース データを定義し、他の 2 つのオブジェクトから独立して存在します。したがって、作成されると、前述のサンプリングが行われ、ソース列のサイズが設定されます。そのため、データ フロー オペレーターが実行され、Excel からデータを取得してテーブルに挿入しようとするまでに、255 文字に制限されたデータ ソースを既に参照しています。