Du behöver dynamisk SQL med EXECUTE
om du vill skicka identifierare (eller delar därav) som parametrar:
CREATE OR REPLACE FUNCTION f_trunc(pos text)
RETURNS void AS
$func$
BEGIN
EXECUTE format('TRUNCATE %I', massive_table_ || pos);
END
$func$ LANGUAGE plpgsql;
Här är två relaterade svar med många förklaringar och länkar: