現在オフラインです。再接続するためにインターネットの接続を待っています

[PRB] SQL Server の DTS ウィザードで、Excel の混合データ用の列型が検出されない場合がある

この記事は、以前は次の ID で公開されていました: JP236605
現象
Microsoft SQL Server データ変換サービス (DTS) のインポート ウィザードを使用して Microsoft Excel のワークシートからデータをインポートするとき、文字列型の列に混合データとして解釈される可能性のあるデータ (16 進のデータを表す英数字の文字列など) が含まれていると、最初の数行によって実際のデータ型が決定され、後続の行が NULL として転送される場合があります。DTS からは、一部の行が転送されていない可能性があることを示すメッセージは表示されません。

: SQL Server 2005 を使用している場合、SQL Server インポートおよびエクスポート ウィザードを使用してデータの変換を行います。
原因
この現象は、Excel ISAM の仕様によるものです。最初の 8 行によって、その列のデータ型が決定されます。たとえば、最初の 8 行の大部分に数字が含まれていれば、その列のデータ型は数値型になります。このデータ型に適合しない後続の値はすべて NULL として返されます。
回避策
回避策の 1 つとして、Excel のシートをテキスト ファイルとして保存し、このファイルを DTS ウィザードを使用して SQL Server にインポートするという方法があります。
詳細

現象の再現手順

例として、Excel で次のようなワークシートを作成します。
10 進16 進
11
22
33
44
55
66
77
88
99
10A
11B
12C
13D
14E
15F
最初の列 "10 進" は "標準" に、2 番目の列 "16 進" は "文字列" に書式設定します。

このテーブルを DTS ウィザードを使用して Excel から SQL Server に読み込むと、SQL テーブルの 10 ~ 15 行目 (値 A ~ F) が NULL になります ("16 進" の列は、ブックでは "文字列" として書式設定されていますが、DTS では DBTYPE_R8 として検出され、Float (浮動小数点) 型になります)。
関連情報
詳細については、SQL Server Books Online の「データ変換サービス」を参照してください。
kbDSupport
プロパティ

文書番号:236605 - 最終更新日: 02/17/2006 07:06:44 - リビジョン: 6.1

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 7.0 Standard Edition, Microsoft Excel 97 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbdatabase kbprb KB236605
フィードバック
="var m=document.createElement('meta');m.name='ms.dqp0';m.content='true';document.getElementsByTagName('head')[0].appendChild(m);" onload="var m=document.createElement('meta');m.name='ms.dqp0';m.content='false';document.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?">