Re: passage parametre psql vers fichier sql

CRUMEYROLLE Pierre <[email protected]> Thu, 21 Dec 2017 09:48:55 +0100
Newsgroups gmane.comp.db.postgresql.french
Message-ID <[email protected]>
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 <[email protected]> a écrit :

> Le 20 décembre 2017 à 18:40, CRUMEYROLLE Pierre <[email protected]>
> 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