SQLPlus Script – Löschen / DROP aller DB-Objekte in DB-Schema

von Karsten Besserdich

Ein einfaches SQLPlus Script, welches alle Datenbank-Objekte (Packages, Sequences, Procedures, Functions, Views, Tables und Types) aus einem DB-Schema löscht – DROP.

Das SQLPlus Script muss unter dem gewünschten DB-Schema / USER ausgeführt werden, dessen Datenbank-Objekte gelöscht – drop – werden sollen.

Alternativ kann auch der USER gelöscht werden und danach wieder neu angelegt werden. Dies hat ggf. Konsequenzen auf die Rechtevergabe anderer DB-Schemata.

ACHTUNG: Das SQLPlus-Script löscht alle Datenbankobjekte des ausführenden USER’s!

3 KOMMENTARE

avatar placeholder
04
.
06
.
2013
 von  Antonius
Was ist mit database links?
avatar placeholder
05
.
06
.
2013
 von  Karsten Besserdich
Hallo Antonius, ich habe das Script angepasst. DB Links werden nun auch gelöscht! Viele Grüße Karsten Besserdich
avatar placeholder
31
.
08
.
2015
 von  Ralf
Ich hab noch einen Verbesserungsvorschlag: Löschen der Scheduler Jobs und dessen Logging: FOR rec IN ( SELECT job_name FROM DBA_SCHEDULER_JOBS dsj WHERE dsj.owner = user) LOOP BEGIN DBMS_SCHEDULER.DROP_JOB ( JOB_NAME => rec.job_name, FORCE => true ); dbms_output.put_line ('JOB DROPPED:' || rec.job_name ); -- Loesche das Logging der Jobs DBMS_SCHEDULER.PURGE_LOG( LOG_HISTORY => 0, JOB_NAME => user || '.' || rec.job_name); EXCEPTION WHEN OTHERS THEN dbms_output.put_line ('ERROR: DROPPING JOB ' || rec.job_name || ' SQLCODE:' || sqlcode || ' sqlerrm:' || sqlerrm); END; END LOOP;

SCHREIBEN SIE EINEN KOMMENTAR