Hola ccalvofer,
Un par de comentarios
1. Para poder ejecutar sentencias DDL dentro de un bloque PL/SQL ha de ser con SQL Dinámico, por ejemplo
Código:
execute immediate 'alter table t1 add (data varchar2(38))';
2. Un particion se trunca entera y se hace referencia a su nombre, por ejemplo, si tengo la tabla t1 con las particiones p1, p2, p3 y p4, entonces el comando es
Código:
alter table t1 truncate partition p3;
Donde el nombre de la particion se define al momento de crear la tabla o bien con un alter table.
Como ultimo comentario, y a modo de consejo, no necesitas hacer un cursor para borrar los datos de la tabla.
Saludos