powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / работа с массивами в psql
5 сообщений из 5, страница 1 из 1
работа с массивами в psql
    #40127875
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, что-то туплю:
Код: sql
1.
2.
3.
4.
5.
postgres=# \set n array[1,2]
postgres=# select (:n)[1];
 array
-------
     1


работает!

Код: sql
1.
2.
3.
4.
postgres=# select (array['a','b'])[1];
 array
-------
 a


тоже!
а вот
Код: sql
1.
2.
3.
4.
postgres=# \set a array['a','b']
postgres=# select (:a)[1];
ERROR:  column "a" does not exist
LINE 1: select (array[a,b])[1];


не алё (
Что я делаю не так? как это эскейпить?
...
Рейтинг: 0 / 0
работа с массивами в psql
    #40127890
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так прокатило

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
postgres=# \set a array['''c''','''g''']
postgres=# select (:a);
 array 
-------
 {c,g}
(1 row)

postgres=# select (:a)[1];
 array 
-------
 c
(1 row)

postgres=# 
...
Рейтинг: 0 / 0
работа с массивами в psql
    #40127894
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо
Код: sql
1.
2.
3.
4.
5.
postgres=# \set a array['\'c\'','\'g\'']
postgres=# select (:a)[1];
 array
-------
 c


так тоже заработало.
Диковато немного, конечно.
...
Рейтинг: 0 / 0
работа с массивами в psql
    #40128066
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mefman,

Если лишнее обращение к серверу или вызов команды ОС не навредят, то можно им доверить экранирование:
Код: sql
1.
select $$array['a','b']$$ as a\gset


или
Код: sql
1.
\set a `echo "array['a','b']"`
...
Рейтинг: 0 / 0
работа с массивами в psql
    #40128070
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Лузанов
mefman,

Если лишнее обращение к серверу или вызов команды ОС не навредят, то можно им доверить экранирование:
Код: sql
1.
select $$array['a','b']$$ as a\gset


или
Код: sql
1.
\set a `echo "array['a','b']"`


Спасибо, тоже хорошие варианты.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / работа с массивами в psql
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]