SQL*Plus script:
set head off set pagesize 0 set verify off set feedback off select 'drop ' || Object_Type || ' ' || Object_Name || decode(Object_Type, 'TABLE', ' CASCADE CONSTRAINTS;' , ';') from User_Objects; purge recyclebin; spool drop_objects.sql / spool off @drop_objects.sql
…or just run the select
in the middle to generate the drop
statements, run those, then purge recyclebin
.
This example is for the play script database that Chris devised. Theoretically it should work in any DBMS that supports the SQL/XML spec (https://en.wikipedia.org/wiki/SQL/XML).
select xmlelement( "Script", xmlelement("name", Scr.Name), xmlelement("author", Scr.Author), xmlelement("copyright_date", Scr.Copyright_Date), ( select xmlagg( xmlelement( "Act", xmlelement("number", A.Act), ( select xmlagg( xmlelement( "Scene", xmlattributes(S.Scene AS "number") ) order by S.Scene ) from Scene S where S.Script = Scr.Name and S.Act = A.Act ) ) ) from Act A where A.Script = Scr.Name ) ).getstringval() from Script Scr;