Использование EXECUTE в запросе WITH в postgresql - PullRequest
0 голосов
/ 03 мая 2018

Я извлекаю данные из таблицы, используя запрос на выполнение. Теперь я хочу сохранить эти данные в некоторой переменной, чтобы использовать их для других операций, и я не могу использовать временную таблицу, поэтому мне нужно использовать запрос WITH.

--Something like this:

with ttable (col1, col2) as (execute 'select tcol1, tcol2 from tab_sample')
insert into tab_sam2 select col1,col2 from ttable;

Теперь это дает мне ошибку при выполнении, говоря синтаксическую ошибку при или близко к выполнению.

Как я могу это сделать. Кроме того, существует ли альтернатива для хранения нескольких данных из таблицы в процедуре / функции без использования массива или временной таблицы ?

1 Ответ

0 голосов
/ 03 мая 2018

EXECUTE является оператором PL / pgSQL и не может быть смешан с SQL.

Почему бы вам не сделать это так:

EXECUTE E'WITH ttable (col1, col2) as (\n'
         '      SELECT tcol1, tcol2 FROM tab_sample\n'
         '   )\n'
         'INSERT INTO tab_sam2\n'
         '   SELECT col1,col2 FROM ttable';
...