to quote the documentation: > If an unquoted colon (:) followed by a psql variable name appears within an argument, it is replaced by the variable's value, as described in SQL Interpolation below. > The forms :'variable_name' and :"variable_name" described there work as well. The :{?variable_name} syntax allows testing whether a variable is defined. It is > substituted by TRUE or FALSE. Escaping the colon with a backslash protects it from substitution.
See https://www.postgresql.org/docs/16/app-psql.html On Mon, Aug 5, 2024 at 8:46 PM Wiwwo Staff <wi...@wiwwo.com> wrote: > Hi! > I want to check if I pass the parameter "param1" to a sql script > "delme.sql" like > ``` > \if ':param1' > \echo :param1; > \else > \prompt 'Param1? ' :param1 > \endif > select :'param1'; > ``` > if parameter `param1` is not passed, the .sql should ask for it. > > If I run something like > `psql -f delme.sql -v param1=1` > it works, but if i pass > `psql -f delme.sql -v param1=meh` > i receive > `psql:delme.sql:1: error: unrecognized value ":param1" for "\if > expression": Boolean expected` > > How can I implement that? > TIA, Wiwwo >