Re: Directly embedding a psql SET variable inside another string?

Поиск
Список
Период
Сортировка
От Adam Scott
Тема Re: Directly embedding a psql SET variable inside another string?
Дата
Msg-id CA+s62-OBC_VQihE5RMW6_rYyoiH_HCbb6pbPS=+1DwaYOd8Adw@mail.gmail.com
обсуждение исходный текст
Ответ на Directly embedding a psql SET variable inside another string?  (Ron <ronljohnsonjr@gmail.com>)
Ответы Re: Directly embedding a psql SET variable inside another string?  (Adrian Klaver <adrian.klaver@aklaver.com>)
Re: Directly embedding a psql SET variable inside another string?  ("David G. Johnston" <david.g.johnston@gmail.com>)
Список pgsql-general
Do you mean like this?

postgres=# \set v_embed %:v_ssn%
postgres=# \echo :v_embed
%345%
postgres=#  SELECT * FROM employee WHERE ssn LIKE :'v_embed';
    ssn    |   name  
-----------+----------
 123456789 | John Doe
(1 row)



On Fri, Jan 13, 2023 at 8:12 AM Ron <ronljohnsonjr@gmail.com> wrote:

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.

В списке pgsql-general по дате отправления:

Предыдущее
От: Ron
Дата:
Сообщение: Directly embedding a psql SET variable inside another string?
Следующее
От: "David G. Johnston"
Дата:
Сообщение: Re: Directly embedding a psql SET variable inside another string?