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