Je hebt dynamische SQL nodig met EXECUTE
als u identifiers (of delen daarvan) als parameters wilt doorgeven:
CREATE OR REPLACE FUNCTION f_trunc(pos text)
RETURNS void AS
$func$
BEGIN
EXECUTE format('TRUNCATE %I', massive_table_ || pos);
END
$func$ LANGUAGE plpgsql;
Hier zijn twee gerelateerde antwoorden met veel uitleg en links: