2011-06-08 4 views
1

Un de mes champs dans la feuille excel est un numéro de téléphone et quand je l'importation en vrac utilisant openrowset et l'insérez dans le champ varchar (50) il est converti en format décimal.OPENROWSET convertir le numéro de téléphone en format excel au format décimal au lieu de varchar

C'est ce que je fais:

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 

Numéro de téléphone 3234406751 (dans le fichier Excel) est converti en 3.23441e + 009 (en TmpDataFileCC_ftb)

J'ai essayé un peu gros et convertir la fonction mais rien ne semble fonctionner. Quelqu'un peut-il me dire ce que je peux faire pour le résoudre?

Répondre

0

Le conducteur de ce que je me souviens fait quelques tours drôles avec les types de données. Il essaie d'estimer le type de données correct à partir des données des huit ou neuf premières lignes de la feuille de calcul. Vous feriez probablement mieux d'exporter des données d'Excel vers CSV et de les charger avec bcp ou openrowset, mais en utilisant csv driver.

Ah oui: un coup d'oeil à cet article

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

qui conduit à ce lien:

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

Cordialement

Piotr

Questions connexes