#1 Wed 19 November 2014 15:45
- simo lay
- Participant assidu
- Date d'inscription: 8 Dec 2011
- Messages: 172
Import de fichier CSV en masse Postgresql
Bonjour,
J'importe des fichiers .csv dans ma base PostreSQL (un par un) sans problème en utilisant
Code:
COPY table_name FROM 'D:/postgres_donnees/fichier1.csv' WITH DELIMITER AS '|';
aujourd'hui j'ai un répertoire qui contient 120 fichiers csv ayant la même structure, je trouve que c'est un peu long d'importer fichier par fichier et je me demande s'il y a un moyen d'importer tous les fichers csv dans une seule requête COPY.
j'ai essayé
Code:
COPY table_name FROM 'D:/postgres_donnees';
mais j'ai un message d'erreur
Code:
ERREUR: n'a pas pu ouvrir le fichier « D:\postgres_donnees » pour une lecture : Permission denied
est ce que vous avez une idée sur la résolution de ce problème ?
Merci
Dernière modification par simo lay (Wed 19 November 2014 16:05)
Hors ligne
#2 Wed 19 November 2014 16:37
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Import de fichier CSV en masse Postgresql
Bonjour,
Une commande ou un script, (shell ou dos) est parfait pour ca, du style (l'exemple marche pas...)
Code:
for f in `dir D:/postgres_donnees/*.csv`; do psql -c "COPY table_name FROM 'D:/postgres_donnees/$f' WITH DELIMITER AS '|'" done
En dos, me rappelle plus trop la syntaxe, mais un rapide google donnera la réponse
Nicolas
Hors ligne
#3 Wed 19 November 2014 17:27
- simo lay
- Participant assidu
- Date d'inscription: 8 Dec 2011
- Messages: 172
Re: Import de fichier CSV en masse Postgresql
Merci Nicolas Ribot .
Hors ligne