Vous n'êtes pas identifié(e).

#1 27/02/2014 12:46:46

zeb
Membre

commande COPY FROM csv avec requête SELECT

Bonjour,
J'ai une table testcopy avec un nom et un prenom.
J'ai un fichiers test.csv sous la forme nom;prenom sur chaque ligne.
Je souhaiterai par exemple à l'import du fichier csv effectuer une requete SQL comme ceci :

COPY testcopy(SELECT nom FROM famille WHERE id = 1006, prenom)
FROM 'C:\Users\Public\test\test.csv'
WITH DELIMITER ';'

Est-ce possible ?
Auriez-vous des propositions ?

Merci

Hors ligne

#2 27/02/2014 15:54:39

gleu
Administrateur

Re : commande COPY FROM csv avec requête SELECT

Pas possible comme ça. Vous pouvez passer par l'extension file_fdw ou utiliser COPY vers une table temporaire à partir de laquelle vous ferez votre SELECT.


Guillaume.

Hors ligne

#3 27/02/2014 16:26:21

zeb
Membre

Re : commande COPY FROM csv avec requête SELECT

OK merci je vais affectivement importer dans une table temporaire et écrire ma requête après. Je ne connais file_fdw pourriez vous rapidement m'expliquer l'intérêt ? Est-ce pour lire un fichier comme une table ?

Hors ligne

#4 27/02/2014 19:42:45

gleu
Administrateur

Re : commande COPY FROM csv avec requête SELECT

Oui, c'est exactement ça. En gros, vous déclarez une table un peu particulière et en lisant cette table, PostgreSQL va en fait lire un fichier CSV et vous en renvoyer le résultat. Le mieux est certainement de lire la documentation à ce sujet : http://docs.postgresql.fr/9.3/file-fdw.html


Guillaume.

Hors ligne

Pied de page des forums