Re: passage parametre psql vers fichier sql
Cédric Villemain <[email protected]> Wed, 20 Dec 2017 19:28:32 +0100
| Newsgroups | gmane.comp.db.postgresql.french |
|---|---|
| Message-ID | <CADKA0TLGsJisH+ZRfCRHKH912L6aacs6YJzPT=MJpwTnpfoTfA@mail.gmail.com> |
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