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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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

Browse pgsql-fr-generale by date

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