Vous devez remplacer l'instruction TRUNCATE par des instructions DELETE, plus lentes et enregistrées, mais c'est la façon de le faire lorsque des contraintes sont en place.
DELETE mytablename;
Soit cela, soit vous pouvez trouver les clés étrangères qui font référence à la table en question et les désactiver temporairement.
select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||CONSTRAINT_NAME||';'
from user_constraints
where R_CONSTRAINT_NAME='<pk-of-table>';
Où pk-of-table
est le nom de la clé primaire de la table tronquée
Exécutez la sortie de la requête ci-dessus. Lorsque cela a été fait, n'oubliez pas de les réactiver, changez simplement DISABLE CONSTRAINT
dans ENABLE CONSTRAINT