Musíte zaměnit příkaz TRUNCATE za příkazy DELETE, pomalejší a protokolované, ale tak to lze udělat, když jsou nastavena omezení.
DELETE mytablename;
Buď to, nebo můžete najít cizí klíče, které odkazují na příslušnou tabulku, a dočasně je deaktivovat.
select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||CONSTRAINT_NAME||';'
from user_constraints
where R_CONSTRAINT_NAME='<pk-of-table>';
Kde pk-of-table
je název primárního klíče zkrácené tabulky
Spusťte výstup výše uvedeného dotazu. Až to uděláte, nezapomeňte je znovu povolit, stačí změnit DISABLE CONSTRAINT
do ENABLE CONSTRAINT