2010-09-03 5 views
3

J'ai un tel fichier csv, le délimiteur de champs est ,. Mes fichiers csv sont très gros, et j'ai besoin de l'importer dans une table SQL Server. Le processus doit être automatisé et ce n'est pas un travail ponctuel. Donc, j'utilise Bulk Insert pour insérer de tels fichiers CSV. Mais aujourd'hui, j'ai reçu une csvfile qui a une telle ligneTSQL Bulk Insert

1,12312312,HOME ,"House, Gregory",P,NULL,NULL,NULL,NULL 

Le problème est que insertion en bloc crée cette ligne, spécialement ce domaine « Maison, Gregory » comme deux champs une « Maison" et le second « Gregory » » .

Existe-t-il un moyen de faire en sorte que Bulk Insert comprenne que les guillemets doubles remplacent le comportement de la virgule? Quand j'ouvre ce csv avec Excel, il voit ce champ normalement comme « House, Gregory »

Répondre

3

Vous avez besoin prétraiter votre fichier, regardez cette réponse:

SQL Server Bulk insert of CSV file with inconsistent quotes

+0

les fichiers sont de 200 Mo ou plus chacun et ils sont à l'emplacement du réseau ... – anderhil

+0

Alors, qu'est-ce que la taille doit avoir? Le prétraitement est la réponse si vous le pouvez, changez le fichier ou demandez à votre fournisseur de vous donner correctement les données. Toutes les colonnes étant entourées de guillemets ou utilisant autre chose qu'une virgule pour un délimiteur (je renvoie tout fichier où ils essaient de l'utiliser, il est tout simplement impossible d'envoyer un fichier délimité par des virgules.) – HLGEM

2

Si chaque ligne de la table a les guillemets doubles vous pouvez spécifier ," et ", en tant que séparateurs de colonne pour cette colonne en utilisant format files

Sinon, faites-le changé ou vous devrez écrire quelques routines de pré-traitement intelligentes quelque part.

Le format de fichier doivent être cohérentes pour l'un des outils SQL Server pour travailler

0

Puisque vous faites référence à Sql Server, je suppose que vous avez accès également disponible (environnement Microsoft convivial). Si vous avez accès, je vous recommande d'utiliser son assistant d'importation. Il est beaucoup plus intelligent que l'assistant d'importation de Sql Server (même version 2014), et plus intelligent que la commande Bulk Insert sql.

Si vous êtes satisfait des résultats dans Access, vous pouvez les importer. plus tard Sql Server de façon transparente.

La meilleure façon de déplacer les données d'accès à Sql est d'utiliser l'assistant de migration Sql Server, disponible here