@d-virt

Как в процедуре записать в var массив row временной таблицы?

Здравствуйте.

В процедуре (postgreSQL) я создаю временную таблицу с случайным именем, из которой я потом хочу выполнить select и положить данные в переменную.
DECLARE
    temp_table_name TEXT;
    temp_table_records RECORD[]; -- знаю, это не корректно, но как будет правильно?
BEGIN
SELECT INTO temp_table_name CONCAT('temp_manager_operative', floor(random()*(999999-100000)+100000)); -- генерация случайного имени таблицы

EXECUTE 'CREATE TEMP TABLE IF NOT EXISTS ' || temp_table_name || ' (id INT, name TEXT)'; -- создаем временную таблицу

 EXECUTE 'SELECT * FROM ' || temp_table_name INTO temp_table_records ; -- выполняем sql запрос во временную таблицу и кладем результат в переменную


Уточните, пожалуйста, как можно положить результат в переменную не используя создание типа?

Спасибо!
  • Вопрос задан
  • 224 просмотра
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
Во-первых, зачем вам нужна временная таблица?
Во-вторых, что вы планируете делать дальше?
В абстрактном случае - похоже вы пытаетесь изобрести курсор www.postgresql.org/docs/current/static/plpgsql-cur...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы