Reconozco que el tÃtulo es un cebo para los que buscáis en Google cómo solucionar este problema.
El grant de TRUNCATE no existe. La opción del DBA es dar el rol de sistema DROP ANY TABLE, que no es muy apropiado.
La solución serÃa crear un procedimiento almacenado con el propietario de estas tablas y darle el GRANT EXECUTE a ese procedimiento almacenado. Como el procedimiento almacenado se ejecuta con las credenciales del propietario, harÃa el TRUNCATE sin problemas:
create or replace procedure TRUNCATABLA(tabla in varchar2 ) as begin execute immediate 'TRUNCATE TABLE ' || tabla; end;