Использование execute в подзапросе в postgresql - PullRequest
0 голосов
/ 04 мая 2018

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

как то так:

declare
df_id varchar;
BEGIN
/*creating dynamic query in run time and saving it in df_id in string format
say df_id='select col from schema.table_name**'*/
CREATE TEMP TABLE temp_table ON COMMIT DROP AS
    execute df_id;

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

1 Ответ

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

Вам необходимо включить CREATE TABLE в ваш динамический SQL.

Предполагая, что переменная df_id уже содержит оператор SELECT, вы можете сделать что-то вроде этого:

df_id := 'CREATE TEMP TABLE temp_table ON COMMIT DROP AS '||df_id;
execute df_id;
...