Die Art und Weise, wie Oracle alle Tabellen löscht, ist
1. Deaktivieren Sie alle Fremdschlüsseleinschränkungen
Führen Sie die folgende Anweisung unter pl/sql Developer aus:
SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' || constraint_name || ';' FROM user_constraints where CONSTRAINT_TYPE = 'R';
Kopieren Sie das Abfrageergebnis und führen Sie es unter pl/sql Developer aus.
Wenn Sie keinen pl/sql-Entwickler haben, können Sie es in sqlplus ausführen. Die Methode ist wie folgt:
1. Öffnen Sie sqlplus und verbinden Sie sich mit dem entsprechenden Benutzer.
2. Stellen Sie die Seitengröße größer ein, z. B. stellen Sie die Seitengröße auf 20000 ein.
3. Verwenden Sie Spool, um die entsprechenden Ergebnisse in die Datei zu importieren, z Generiertes Skript, aber es gibt redundante Anweisungen am Anfang und Ende der Skriptdatei. Öffnen Sie es mit einem Texteditor und löschen Sie die nutzlosen Anweisungen
5. Melden Sie sich erneut bei sqlplus mit dem entsprechenden Benutzer an und führen Sie den folgenden Befehl aus
SQL> spool /home/oracle/constraint.sql SQL> SELECT 'ALTER TABLE ' || table_name || ' disable CONSTRAINT ' || constraint_name || ';' FROM user_constraints where CONSTRAINT_TYPE = 'R'; SQL> spool off
SQL> @/home/oracle/constraint.sql
SELECT 'DELETE FROM '|| table_name || ';' FROM USER_TABLES ORDER BY TABLE_NAME;
Verwenden Sie eine ähnliche Methode wie der erste Schritt. Beachten Sie, dass Sie nur die Truncate-Anweisung verwenden können, wenn die Daten in der Tabelle mit einem Trigger verknüpft sind. Die Truncate-Anweisung kann jedoch nicht zurückgesetzt werden. Sie sollten daher darauf achten, wann
3. Deaktivieren Sie den Fremdschlüssel öffnen
SELECT 'TRUNCATE TABLE '|| table_name || ';' FROM USER_TABLES ORDER BY TABLE_NAME;
Das obige ist der detaillierte Inhalt vonSo löschen Sie alle Tabellen in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!