powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / вставка данных из произвольного запроса в таблицу
7 сообщений из 7, страница 1 из 1
вставка данных из произвольного запроса в таблицу
    #40066818
Misha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день.
есть задача вставки данных из произвольного запроса в таблицу по совпадению имен полей.
в оракле решалась процедурой которая через
dbms_sql.describe_columns
строила инсерт с пересекающимися именами полей и выполняла.

в пг dbms_sql.describe_columns отсутствует.
решение 1 - create view temporary as select ... и обращение к information_schema.columns для вытаскивания имен полей запроса
(через ж, но зато с типами полей)

решение 2 через жсон:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select key flds 
from json_each_text(
(select row_to_json(a)
from 
(
select 1 fld1, 2 fld2, 'qqq' fld3
)a
limit 1)
)



может есть более простые варианты решения задачи?
...
Рейтинг: 0 / 0
вставка данных из произвольного запроса в таблицу
    #40066830
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha111,

\gdesc в psql не подойдет? Начиная с 11 версии:
Код: sql
1.
2.
3.
4.
5.
6.
postgres=# select 1 fld1, 2 fld2, 'qqq' fld3\gdesc
 Column |  Type   
--------+---------
 fld1   | integer
 fld2   | integer
 fld3   | text
...
Рейтинг: 0 / 0
вставка данных из произвольного запроса в таблицу
    #40066832
Misha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужно процедурное решение.
я так понимаю в plpgsql или подобное это не запихнуть
...
Рейтинг: 0 / 0
вставка данных из произвольного запроса в таблицу
    #40066930
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha111,

В plpgsql нет, а на питончике думаю запросто можно.
...
Рейтинг: 0 / 0
вставка данных из произвольного запроса в таблицу
    #40066966
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Лузанов
В plpgsql нет, а на питончике думаю запросто можно.

Хм, на счет "запросто" погорячился. В модуле plpy только у функции execute есть методы colnames, coltypes. Т.е. пока не выполнишь запрос, ничего не получишь.
...
Рейтинг: 0 / 0
вставка данных из произвольного запроса в таблицу
    #40067295
Misha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Павел Лузанов,

спасибо за подсказки.
пока остановлюсь на первых 2х вариантах.
...
Рейтинг: 0 / 0
вставка данных из произвольного запроса в таблицу
    #40067303
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha111,

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


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