LOAD DATA INFILE et Lignes vides
Lerdouille
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
java4ever -
java4ever -
Bonjour,
j'utilise la commande LOAD DATA INFILE pour insérer un fichier CSV dans un base de données.
La commande fonctionne très bien, mais j'aimerai l'améliorer dans le but d'insérer uniquement les lignes non vides.
Je m'explique, il se peut que le fichier CSV a insérer contiennent des lignes vides, lignes présentes dans le fichier sous forme
;;;;;;;;
;;;;;;;;
;;;;;;;;
.....
Lorsque la commande est exécutée, elle m'insère donc une ligne avec des colonnes vides, le problème est que le processus est extrêmement long lorsque le fichier comporte plus d'1 million de lignes (le client responsable des fichiers CSV peut faire une mauvaise manip).
Existe t'il un moyen dans la commande LOAD DATA INFILE de ne pas insérer ces lignes ? avec un IGNORE par exemple ?
Cordialement
j'utilise la commande LOAD DATA INFILE pour insérer un fichier CSV dans un base de données.
La commande fonctionne très bien, mais j'aimerai l'améliorer dans le but d'insérer uniquement les lignes non vides.
Je m'explique, il se peut que le fichier CSV a insérer contiennent des lignes vides, lignes présentes dans le fichier sous forme
;;;;;;;;
;;;;;;;;
;;;;;;;;
.....
Lorsque la commande est exécutée, elle m'insère donc une ligne avec des colonnes vides, le problème est que le processus est extrêmement long lorsque le fichier comporte plus d'1 million de lignes (le client responsable des fichiers CSV peut faire une mauvaise manip).
Existe t'il un moyen dans la commande LOAD DATA INFILE de ne pas insérer ces lignes ? avec un IGNORE par exemple ?
Cordialement
A voir également:
- LOAD DATA INFILE et Lignes vides
- App data - Guide
- Windows data recovery - Télécharger - Récupération de données
- Couldn't load xpcom ✓ - Forum Mozilla Firefox
- Data (d:) - Forum Disque dur / SSD
- Comment supprimer les pages vides sur word - Guide
1 réponse
Bonjour,
Je ne connais pas d'option du load data infile qui filtre ce que tu appelle des lignes vides, mais je vais te répondre par un conseil :
Insère dans ta chaine de traitement un petit script dans ton langage de script préféré (par exemple en Perl) pour filtrer les lignes en question.
C'est tout simple à faire avec les expressions régulières, et ce sera sûrement plus rapide que demander à load data de le faire.
Je te donne même l'expression regex pour le faire en perl :
Je ne connais pas d'option du load data infile qui filtre ce que tu appelle des lignes vides, mais je vais te répondre par un conseil :
Insère dans ta chaine de traitement un petit script dans ton langage de script préféré (par exemple en Perl) pour filtrer les lignes en question.
C'est tout simple à faire avec les expressions régulières, et ce sera sûrement plus rapide que demander à load data de le faire.
Je te donne même l'expression regex pour le faire en perl :
while (!$FIN_FIC) { # on écrit pas la ligne si seulement des points-virgule dedans, (ligne vide) if (!($LIGNE_LUE =~ m/^;+$/)) { print HFIC_CSV_OUT ($LIGNE_LUE); } $LIGNE_LUE = <HFIC_CSV_IN>; $FIN_FIC = !defined($LIGNE_LUE); # "($LIGNE_LUE eq ""); }