Re: psql syntax for array of strings in a variable? - Mailing list pgsql-general

From Pavel Stehule
Subject Re: psql syntax for array of strings in a variable?
Date
Msg-id CAFj8pRAHUTg0ANbUTG_54EkEj3aC0L0Rm-dLya4J2mWsfu_geA@mail.gmail.com
Whole thread Raw
In response to psql syntax for array of strings in a variable?  (Philip Semanchuk <philip@americanefficient.com>)
List pgsql-general
Hi

pá 29. 10. 2021 v 19:21 odesílatel Philip Semanchuk <philip@americanefficient.com> napsal:
Hi,
I would appreciate help with the syntax for querying an array of strings declared as a psql variable. Here's an example.

\set important_days ARRAY['monday', 'friday']

select 1 where 'monday' = ANY(:important_days);
ERROR:  42703: column "monday" does not exist
LINE 1: select 1 where 'monday' = ANY(ARRAY[monday,friday]);

select 1 where 'monday' = ANY(:"important_days");
ERROR:  42703: column "ARRAY[monday,friday]" does not exist
LINE 1: select 1 where 'monday' = ANY("ARRAY[monday,friday]");

I'm doing something wrong but I can't figure out what.

My real-world use case is that I have a psql script that will execute several queries on a long list of strings, and rather than repeat those strings over and over in the script, I'd like to declare them once at the top of the script and then refer to the variable after that. Bonus points if there's a way to do a multiline declaration like --

\set important_days ARRAY['monday',
                          'friday']

Thanks for reading
Philip

psql variables can hold only text. There is not any type - all is just text.

Regards

Pavel

pgsql-general by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: psql syntax for array of strings in a variable?
Next
From: Tom Lane
Date:
Subject: Re: psql syntax for array of strings in a variable?