Re: Utilisation de COPY dans une fonction

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: Lilian BENOIT <lbenoit(at)gmx(dot)com>
Cc: pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: Utilisation de COPY dans une fonction
Date: 2015-12-14 23:04:14
Message-ID: CAECtzeVT5jPdcKL0VXhbEUmmM3_4k2pp3HjDG1W_fjeh8FOk1Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonsoir,

Le 14 déc. 2015 11:47 PM, "Lilian BENOIT" <lbenoit(at)gmx(dot)com> a écrit :
>
> Bonjour,
>
> Dans une fonction pgsql, je souhaite :
> 1. charger une table à partir d'un fichier ( utilisation de COPY )
> 2. réaliser des opérations
> 3. décharger la table dans un fichier ( utilisation de COPY )
>
> Pour paramétrer les fichiers, je place deux arguments de type text à ma
fonction.
> Pour utiliser des variables dans la commande COPY, je place EXECUTE
devant.
>
> Pour charger, cela donne la commande suivante :
> EXECUTE 'COPY test FROM ''' || fichier_in || ''' with DELIMITER '','''
>
> Pour décharger, cela donne la commande suivante :
> EXECUTE 'COPY test TO ''' || fichier_out || ''' with DELIMITER '','''
>
> La première commande passe mais la seconde est en erreur. PostgreSQL
m'indique qu'il ne trouve pas la colonne fichier_out.
>

S'il vous parle de colonne, c'est que vous devez avoir des guillemets
doubles autour du nom de fichier au lieu de guillemets simples.

> Si au lieu d'utiliser la variable fichier_out, j'indique un fichier en
dur. Cela fonctionne.
> J'ai utilisé fichier_in à la place de fichier_out. J'obtiens la même
erreur.
> J'ai beau tourné dans tous les sens, je ne vois pas le problème.
Avez-vous une idée ?
>
> La version de la base est la version 8.2 sous Linux. Je travaille sur une
application assez ancienne. Le projet de migration est en cours (non lié à
mon problème)
> Cependant, sauf erreur de ma part, je ne vois pas ce que m'apporterai une
nouvelle version.
>

Pour votre problème spécifique, certainement rien. Pour éviter de tomber
sur un problème déjà corrigé, comme des failles de sécurité et des
corruptions de données, probablement tout.

Utiliser une 8.2 en production actuellement revient à mon sens à se moquer
totalement de sa production et de ses données. Mais ça n'engage que moi :-)

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message damien 2016-01-04 10:36:57 Comment traduire "Row Level Security" ?
Previous Message Lilian BENOIT 2015-12-14 22:47:02 Utilisation de COPY dans une fonction