Skip site navigation (1) Skip section navigation (2)

Réf. : Re: Variable de script psql

From: philippe(dot)beaudoin(at)bull(dot)net
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Réf. : Re: Variable de script psql
Date: 2009-06-24 12:10:10
Message-ID: OF4EB9FBEA.56019788-ONC12575DF.0041CF64@frcl.bull.fr (view raw or flat)
Thread:
Lists: pgsql-fr-generale
>Bonjour,
>
>Le mercredi 24 juin 2009 à 10:50:21, philippe(dot)beaudoin(at)bull(dot)net a écrit :
>> [...]
>> Il faudrait que je puisse rendre variable le pathname d'une commande :
>> \copy <table> to <pathname>
>> J'ai essayé d'ajouter des options -v à la commande psql pour passer des
>> variables. Mais quand j'écris
>> \copy <table> to :var
>> la variable :var n'est pas substituée (et j'obtiens un beau fichier
nommé
>> ... :var !)
>> Idem si la variable est définie par un \set , alors que \echo :var
affiche
>> bien le contenu de la variable.
>> Je n'ai donc pas trouvé la bonne syntaxe, si elle existe...
>>
>
>Remplacez le \copy par la commande SQL COPY. Et pensez à bien ajouter les
>guillemets à la valeur de votre variable, ainsi par exemple :
>
>\set toto '''/home/guillaume/toto'''
>

Merci pour les tuyaux.
Mais la commande sql COPY pose un autre souci : il faut être superuser pour
l'utiliser, ce qui ne va pas bien dans notre contexte.

Je vais creuser l'idée de François.
\o :mavariable                        -- redirige la sortie de psql vers
\copy nom_table to stdout    -- Effectue la copie de la table
\o                                             -- arrête la redirection

Mais la sortie standard du script est déjà orientée vers un fichier au
niveau de la commande
psql -o ...
En fait, on veut 2 fichiers de sortie : le log de la session psql d'un côté
et le résultat du \copy.
Je vais voir ce que cela peut donner.

Philippe.



Responses

pgsql-fr-generale by date

Next:From: Guillaume LelargeDate: 2009-06-24 12:32:15
Subject: Re: Limite de connexions dépassée pour les utilisateurs standards
Previous:From: Samuel ROZEDate: 2009-06-24 11:09:42
Subject: Limite de connexions dépassée pour les utilisateurs standards

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group