Имате нужда от динамичен SQL с EXECUTE
ако искате да предадете идентификатори (или части от тях) като параметри:
CREATE OR REPLACE FUNCTION f_trunc(pos text)
RETURNS void AS
$func$
BEGIN
EXECUTE format('TRUNCATE %I', massive_table_ || pos);
END
$func$ LANGUAGE plpgsql;
Ето два свързани отговора с много обяснения и връзки:
- INSERT с име на динамична таблица във функция за задействане
- Името на таблицата като Параметър на функцията PostgreSQL