J'utilise les éléments suivants MS SQL Query pour importer un fichier texte contenant des valeurs séparées par des virgules dans DB:Perfection en utilisant VRAC requête d'insertion
BULK INSERT logs
FROM 'E:\Sample.txt'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
Malheureusement, l'un des champs dans mon fichier texte CSV contient des messages comme: "Problème dans les ports UDP (234,137)" qui contient une virgule à l'intérieur de lui-même. Par conséquent, le DB prend les valeurs avant la virgule comme un champ et insère la valeur après la virgule dans le champ suivant (ce qui est logiquement incorrect). Par conséquent, la valeur légitime de ce dernier champ est rejetée lors de l'insertion dans la table.
Espérons que mon problème est mieux expliqué.
Des solutions pour résoudre ce problème et stocker l'ensemble: "Problème dans les ports UDP (234,137)" dans un seul champ?
Comment vous obtenez un fichier csv? –
Les valeurs de votre fichier csv sont-elles systématiquement citées? Sinon, vous pouvez avoir [ce problème] (http://stackoverflow.com/questions/782353/sql-server-bulk-insert-of-csv-file-with-inconsistent-quotes). SQL Server semble s'attendre à ce que toutes les valeurs du fichier soient quotées ou non. Pour cette raison, je préfère prétraiter le fichier avec une langue qui a un bon support csv (Perl, Python, peu importe) et soit générer un fichier csv « propre » pour l'importation, ou tout simplement générer un script 'INSERT' directement. – Pondlife