Ich habe Tabellen, die Namen beginnen mit "TBL_ *", aber ich kann nicht Drop alle von ihnen mit einem einzigen Befehl.Drop alle Tabellen SQL-Entwickler
Wie kann ich diese Tabellen fallen lassen?
Ich habe Tabellen, die Namen beginnen mit "TBL_ *", aber ich kann nicht Drop alle von ihnen mit einem einzigen Befehl.Drop alle Tabellen SQL-Entwickler
Wie kann ich diese Tabellen fallen lassen?
Sie können ein Skript schreiben, insbesondere Schleife, in der Sie Tabellenname aus user_tables auswählen und diese Schleife durchlaufen, und verwenden Sie den Befehl "execute sofort", um sie zu löschen.
Aber ich würde dies vorschlagen - in SQL-Tool tun
select 'drop table ' || table_name || ';' from user_tables where table_name like 'TBL_%'
Dann Sie die Ausgabe dieser Abfrage kopieren und in Ihr SQL-Editor einfügen, und auszuführen. Denken Sie daran, wenn sql + Ihr Editor ist, wenn Sie sie alle einfügen, werden sie ausgeführt werden. Möglicherweise möchten Sie Notepad verwenden, um es zuerst zu überprüfen und zu bearbeiten.
Aber Sie können nicht einfach mehr als eine Tabelle in einem einzigen Befehl löschen. diesen Link für andere Optionen mit drop table http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9003.htm
BEGIN
--Bye Tables!
FOR i IN (SELECT ut.table_name
FROM USER_TABLES ut) LOOP
EXECUTE IMMEDIATE 'drop table '|| i.table_name ||' CASCADE CONSTRAINTS ';
END LOOP;
END;
zugeordnet Überprüfen beschrieben ich diese Technik in meiner ursprünglichen Antwort> 3 Jahre. Und ich wies darauf hin, dass es manchmal gefährlich sein kann, wenn man mit Daten arbeitet http://stackoverflow.com/a/18030453/1704458 –
Das bekommt einen Downvote, weil der User * speziell nach * nur Tabellen fragt, die mit "TBL_" beginnen - das würde alles löschen! – theMayer