| From: | Ron <ronljohnsonjr(at)gmail(dot)com> |
|---|---|
| To: | "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org> |
| Subject: | Directly embedding a psql SET variable inside another string? |
| Date: | 2023-01-13 16:12:30 |
| Message-ID: | e556cfc8-30e6-014c-264a-f0b62d71a368@gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-general |
Pg 12
I need to pass a \set variable (in this example named v_ssn) into a LIKE
string. A two-stage process (building v_like from v_ssn, and then using
v_like in the LIKE string) works, and is fine when executing an sql script,
but not so good is there any way to *directly* embed v_ssn in another string?
test=# \set v_ssn 345
test=# \echo :v_ssn
345
test=# \set v_like %:v_ssn%
test=# \echo :v_like
%345%
test=# SELECT * FROM employee WHERE ssn LIKE :'v_like';
ssn | name | ssn_int
-----------+----------+-----------
123456789 | John Doe | 123456789
(1 row)
As expected, this fails:
postgres=# SELECT * FROM employee WHERE ssn LIKE :'%v_ssn%';
ERROR: syntax error at or near ":"
LINE 1: SELECT * FROM employee WHERE ssn LIKE :'%v_ssn%';
--
Born in Arizona, moved to Babylonia.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Adam Scott | 2023-01-13 17:08:16 | Re: Directly embedding a psql SET variable inside another string? |
| Previous Message | Harmen | 2023-01-13 15:01:59 | row estimate for partial index |