Sie müssen die TRUNCATE-Anweisung durch DELETE-Anweisungen ersetzen, langsamer und protokolliert, aber das ist der Weg, es zu tun, wenn Einschränkungen vorhanden sind.
DELETE mytablename;
Entweder das, oder Sie können die Fremdschlüssel finden, die auf die betreffende Tabelle verweisen, und sie vorübergehend deaktivieren.
select 'ALTER TABLE '||TABLE_NAME||' DISABLE CONSTRAINT '||CONSTRAINT_NAME||';'
from user_constraints
where R_CONSTRAINT_NAME='<pk-of-table>';
Wo pk-of-table
ist der Name des Primärschlüssels der Tabelle, die abgeschnitten wird
Führen Sie die Ausgabe der obigen Abfrage aus. Wenn dies geschehen ist, denken Sie daran, sie wieder zu aktivieren, ändern Sie einfach DISABLE CONSTRAINT
in ENABLE CONSTRAINT