1

Excel シートのフィールドの 1 つは電話番号で、openrowset を使用して一括インポートし、それを varchar(50) フィールドに挿入すると、10 進数形式に変換されます。

これは私がやっていることです:

CREATE TABLE dbo.TmpDataFileCC
 (
     field_1 VARCHAR(500) NULL
    ,Field_2 VARCHAR(500) NULL
    ,Phone1 VARCHAR(500) NULL 
 )

Insert into TmpDataFileCC(field_1,Field_2,Phone1)
SELECT F1,F2,F3 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=J:\UploadToSQL\test_file.xls;HDR=NO', 'SELECT * FROM [sheet1$]')
where F3 is not null

電話番号 3234406751 (Excel ファイル内) は 3.23441e+009 (TmpDataFileCC_ftb 内) に変換されます

キャストと変換機能をいくつか試しましたが、何も機能しないようです。誰かがそれを解決するために何ができるか教えてもらえますか?

4

1 に答える 1

0

私が覚えているドライバーは、データ型でいくつかの面白いトリックを行います。スプレッドシートの最初の 8 行または 9 行のデータから正しいデータ型を推定しようとします。おそらく、Excel から CSV ファイルにデータをエクスポートし、bcp または openrowset でロードする方がよいでしょうが、csv ドライバーを使用します。

ああ、はい: この記事を見てください

http://support.microsoft.com/kb/321686

これはこのリンクにつながります:

http://support.microsoft.com/kb/194124/EN-US

よろしく

ピーター

于 2011-06-08T22:15:20.847 に答える