2011-04-01 18 views
1

私はSQL Server 2005のSQL Serverでファイルをエクセル読み取ることができません

select @bcpquery = 
     'bcp "SELECT Column1 FROM Tablename" queryout '+ 
     @fullFileName +' -c -t -U<username> -P<password> -S'+ @@servername 

でbcpコマンド/ xp_cmdshellをを使用してExcelファイルを作成していると私は文の下に使用してExcelデータを読み取ることができないのです

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
     'Excel 8.0;Database=<PATH\filename.xls>;HDR=YES', 
     'SELECT * FROM [sheetname$]') 

ファイルを読み取ることができません。これは、ユニコード文字のために起こっていると思います。

誰かが私を助けることができますか?

+0

"読むことができません"とはどういう意味ですか?何かエラーがありますか?ユニコードが関係するのはなぜだと思いますか? Column1はどのデータ型ですか?結果ファイルをExcelまたはメモ帳で手動で開くことはできますか?もしそうなら、内容は正しいか? – Pondlife

+0

SQLで実行すると、次のエラーが表示されます。 メッセージ7399、レベル16、状態1、行2 リンクサーバー "(null)"のOLE DBプロバイダ "Microsoft.Jet.OLEDB.4.0"でエラーが報告されました。プロバイダは、エラーに関する情報を一切提供しませんでした。 メッセージ7303、レベル16、状態1、行2 リンクサーバー "(null)"のOLE DBプロバイダ "Microsoft.Jet.OLEDB.4.0"のデータソースオブジェクトを初期化できません。 ファイルを手動で開くことができますが、内容は正しいですが、警告ボックスが表示されます。 – user463745

+0

これは64ビットマシンで実行していますか? Jetプロバイダは64ビットで動作しません。 –

答えて

0

BCPを使用してデータを区切りファイルとしてコピーしていますが、OPENROWSET呼び出しはExcelシートを読み取っていますが、表示されます。エクセルはXLSとしてCSVを開設すると非常に寛容ですが、ジェットドライバが同じ方法であるかどうかはわかりません。

BULK INSERTを使用して区切られたファイルを読み取るか、理想的にはSSISをエクスポートしてインポートすることをお勧めします。

関連する問題