Как выполнить динамически построенный запрос на языке PL/pgSQL ?

Добрый день.

Подскажите, пожалуйста, есть ли возможность выполнять динамически сформированные запросы на языке PL/pgSQL аналогично тому как это организовано в Oracle на PL-SQL ? В документации на PostgreSQL динамический SQL описан только как встраиваемый в язык C.

Мне нужно динамически обнулять командой TRUNCATE некоторые таблицы в базе данных, имена которых мне заранее неизвестны. Я должен "пробегать" по списку этих таблиц, который записан в базе, и динамически обнулять их. На Oracle это выглядит так :

stmt_str := 'TRUNCATE TABLE T1';
EXECUTE IMMEDIATE stmt_str;

Скажите, пожалуйста, как это можно (если вообще можно) написать на PL/pgSQL ?

Спасибо.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

EXECUTE 'SELECT count(*) FROM

EXECUTE 'SELECT count(*) FROM mytable WHERE inserted_by = $1 AND inserted <= $2'
   INTO c
   USING checked_user, checked_date;

https://www.postgresql.org/docs/9.1/static/plpgsql-statements.html

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023