使用SQL语句快速删除ORACLE数据库下的所有表、视图等

最近有需求想使用SQL语句将数据库下的所有表、视图、SEQUENCE等全部删除。下面SQL语句可以实现该需求,分享一下,希望帮到大家。在ORACLE 11G下使用正常

BEGIN
  FOR i IN (SELECT us.sequence_name
              FROM USER_SEQUENCES us) LOOP
    EXECUTE IMMEDIATE 'drop sequence '|| i.sequence_name ||'';
  END LOOP;
  FOR i IN (SELECT ut.table_name
              FROM USER_TABLES ut) LOOP
    EXECUTE IMMEDIATE 'drop table '|| i.table_name ||' CASCADE CONSTRAINTS ';
  END LOOP;
  FOR i IN (SELECT view_name FROM user_views) loop
    EXECUTE IMMEDIATE 'drop view ' || i.view_name;
  END loop;
END;

你可能感兴趣的:(数据库,学习日记)