Re: [pgsql-fr-generale] passage parametre psql vers fichier sql

From: CRUMEYROLLE Pierre <pierre(dot)crumeyrolle(at)c-s(dot)fr>
To: pgsql-fr-generale(at)lists(dot)postgresql(dot)org
Subject: Re: [pgsql-fr-generale] passage parametre psql vers fichier sql
Date: 2017-12-21 09:08:33
Message-ID: 20171221100833.Horde.9v-1p7xCGtbHtI8M9vxmEQ4@messagerie.c-s.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

par contre si j'ai 2 requête dans mon fichier myfile.sql avec un where
= et un like

select * from table where :param1
select * from table like :param2

je suis oblige de passer 2 parametres pour faire un where 'toto' et un
like '%toto'
sql -h host -p port -U user database -a -v param1=\'toto\' -v
param2=\'%toto\' -f myfile.sql

donc je pense que je fais passer par des variable d'environnement ${param}

CRUMEYROLLE Pierre <pierre(dot)crumeyrolle(at)c-s(dot)fr> a écrit :

> bonjour
> Ok merci ça marche avec ce format vol=\'V038\' => psql -h seacev-pp
> -p 5452 -U postgres db_compare -a -v vol=\'V038\' -f compare_idli.sql
> le seul truc perturbant la requête s'affiche .... id_cv_princ=:vol
> .... avec l'option -a on ne voit pas en fait
> la vrai valeur d’exécution .... id_cv_princ='V038'
> mais bon ça marche donc pb resolved
> merci
>
> psql -h seacev-pp -p 5452 -U postgres db_compare -a -v vol=\'V038\'
> -f compare_idli.sql
>
>
> Cédric Villemain <cedric(at)2ndquadrant(dot)com> a écrit :
>
>> Le 20 décembre 2017 à 18:40, CRUMEYROLLE Pierre <pierre(dot)crumeyrolle(at)c-s(dot)fr>
>> a écrit :
>>
>>> bonjour
>>>
>>> soit un fichier sql : compare_idli.sql
>>>
>>> select 'Delta found R_DESC_PLANCHE--> ' as Delta ,
>>> ID_CV_PRINC,ID_DESC_PL FROM (SELECT * FROM schema_cnes.R_DESC_PLANCHE WHERE
>>> id_cv_princ=:vol except SELECT * FROM schema_cssi.R_DESC_PLANCHE WHERE
>>> id_cv_princ =: vol ) as result WHERE (ID_CV_PRINC,ID_DESC_PL) IN (SELECT
>>> ID_CV_PRINC,ID_DESC_PL FROM schema_cssi.R_DESC_PLANCHE) ;
>>>
>>>
>> ce n'est pas très lisible...et il semble y avoir un espace en trop entre
>> ":" et "vol"
>>
>>
>>
>>> je veux passe en paramètre vol=V038
>>>
>>> psql -h seacev-pp -p 5452 -U postgres db_compare -a -v vol=V038 -f
>>> compare_idli.sql
>>>
>>> je ne trouve pas le moyen de mettre de cotes
>>> le WHERE id_cv_princ=:vol se transforme en WHERE id_cv_princ='V038'
>>>
>>
>> heu ... dans l'exemple ci-dessus le comportement est correct (je n'ai pas
>> testé, je ne fais que lire ce que vous avez écrit)...quel est le problème
>> rencontré ?
>>
>> Du coup, voici un exemple complet, simple, lisible et reproductible:
>>
>> $ cat /tmp/a.sql
>> select :param;
>>
>> $ psql -f /tmp/a.sql -v param=\'tr\'\'uc\'
>> ?column?
>> ----------
>> tr'uc
>>
>>
>> --
>>
>> Cédric Villemain +33 (0)6 20 30 22 52http://2ndQuadrant.fr/
>> PostgreSQL: Support 24x7 - Développement, Expertise et Formation

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Daniel Verite 2017-12-21 10:10:35 Re: [pgsql-fr-generale] passage parametre psql vers fichier sql
Previous Message CRUMEYROLLE Pierre 2017-12-21 08:48:55 Re: [pgsql-fr-generale] passage parametre psql vers fichier sql