2017-08-31 4 views
0

J'ai effectué une recherche parmi de nombreuses questions SO incompatibles de type insertions en bloc mais je n'ai pas encore trouvé de réponse à mon problème exact. Je suis en vrac l'insertion d'un CSV dans une SSMS locale datbase, mais je continue à recevoir l'erreur:Incompatibilité de type Insertion en bloc ou Caractère invalide

' (type mismatch or invalid character for the specified codepage) for row 2, 
    column 4 (DayNumber) ' 

Cette erreur se répète jusqu'à ce que SSMS atteint le nombre maximum d'erreurs. J'ai déjà vu cette erreur et j'ai toujours pu y travailler. De plus, j'ai essayé toutes les corrections standards listées sur SO mais je n'ai pas eu de chance. Trois choses collent à moi sur cette erreur particulière qui peut conduire à quelqu'un d'être en mesure de me aider:

1) DayNumber is actually column 5 in the underlying CSV, not column 4 
2) The DayNumber column simply has numeric values, I even with through row 
    by row to ensure there were no irregular characters contained in the 
    column 
3) I have tried bulk inserting the CSV with this column set as a varchar, 
    int, numeric, and float - all of which produce the same error 

Toute aide sur ce serait grandement apprécié que ce se maintient l'ensemble du projet. En outre, je réussis à insérer en bloc deux fichiers CSV différents dans la même requête. Ces fichiers CSV sont stockés dans le même dossier que le fichier à l'origine de l'erreur.

Merci d'avance pour toute aide!

CI-DESSOUS DES DONNÉES

EXEMPLE:

Exemple CSV des données:

Country  Region  Month  Date  DayNumber Location 
USA   California January 8/17/2016 48  USA 
England  London  March  6/30/2017 91  England 
USA   Wyoming  November 3/31/2017 90  USA 
Canada  Alberta  January 12/31/2016 92  Canada 
England  Manchester February 9/30/2016 92  England 
New Zealand Auckland  July  6/30/2016 91  New Zealand 
USA   New York  December 3/31/2016 91  USA 
Canada  Ontario  April  12/31/2015 92  Canada 
USA   New York  September 9/30/2015 92  USA 
Australia Queensland January 6/30/2015 91  Australia 
Australia Sydey  March  3/31/2015 90  Australia 
USA   San Diego February 12/31/2014 92  USA 
Canada  Quebec  October 9/30/2014 92  Canada 
USA   Florida  August 6/30/2014 91  USA 

déclaration Exemple d'insertion en bloc:

Create Table Table_A 
(
    [Country] varchar(max), 
    [Region] varchar(max), 
    [Month] varchar(max), 
    [Date] varchar(max), 
    [DayNumber] varchar(max), 
    [Location] varchar(max), 
           ) 
    GO 

BULK INSERT 
Table_A 
FROM 'C:\Path\CSV.csv' 
WITH 

(
    FIELDTERMINATOR = ',', 
    ROWTERMINATOR = '\n', 
    FIRSTROW = 2 
); 
+0

Pouvez-vous fournir votre fichier csv, et peut vous fournir l'insertion en bloc requête – MBurnham

+0

@MBurnham J'ai ajouté des échantillons de données et instruction d'insertion en vrac à la question initiale – ls101

+0

@MBurnham grâce une tonne pour votre aide – ls101

Répondre

0

enter image description here

Si vous formatez les données comme cela, il fonctionnera . Activez 'Afficher tous les caractères' dans le bloc note ++ et assurez-vous qu'il n'y a pas de caractères cachés entre les champs (seulement à la fin de chaque enregistrement).