http://www.oradb.net/sql/sql_bat.htm
select ' drop table '||table_name||';' from user_tables where ...;

解决方案 »

  1.   

    补充一下。jiezhi的这条语句落下了分区表
    select ' drop table '||table_name||';' from user_Part_Tables where ...;
      

  2.   

    set linesize 32767
    set pagesize 0
    set feedback OFF
    set trims on
    set heading off
    set echo off
    set term off
    spool F:\cnt.sql
    SELECT 'SPOOL F:\CNT_RESULT.TXT' FROM DUAL;
    select ' drop table '||table_name||';' from user_tables where owner='';
    select ' drop table '||table_name||';' from user_Part_Tables where  owner='';
    SELECT 'SPOOL OFF' FROM DUAL;
    spool off
    @F:\CNT.SQL
    set linesize 200
    set pagesize 0
    set feedback ON
    set trims OFF
    set heading oN
    set echo oN
    set term oN
      

  3.   

    drop user 用户名 cascade;
      

  4.   

    仔细想了一下,上面的脚本代码好像简单了点,忽略了一个重要的问题:
    表之间一般会有外键关系的,那么怎么保证删除表的次序是按照正确的次序呢。
    可能需要先把表之间的外键引用关系摸出来。好像PL/SQL的脚本要增加不少的代码喽,呵呵。还有一个方法,用第三方的工具,如powerdesign,把数据库结构reverse engineering出来,再生成建表脚本,把其中的drop table部分和alter table drop constraint部分拿出来。
    就是我们需要的脚本了。
      

  5.   

    TO enhydraboy(乱舞的浮尘) :YOU CAN DO LIKE THIS:select 'drop table '||table_name||' cascade constraints;' from user_tables ;
      

  6.   

    有很多表吗?如果<100,那么就用OEM要方便的多,何必自己写SQL呢?
      

  7.   

    删除用户难道不好吗?
    drop user 用户名 cascade;
      

  8.   

    to shuipipi(水皮皮) :
    嗯,不错。
    to  yangqingdelphi() 
    "删除用户难道不好吗?
    drop user 用户名 cascade;"
    好像太霸道了,连用户都没有了,如果重建,连权限设置都要重新来一次。
      

  9.   

    先在OEM中建立一个相同的用户(点一下右键就OK了),然后删除原有用户(也是点一下右键),好像比楼上的做法好些!
      

  10.   


    快速点就直接删除用户:drop user username
      

  11.   


    直接点:drop user username
      

  12.   

    比较保险的方式是做个游标从user_tables取出来所有该用户的表,然后一个一个的drop,因为不知道该用户建立的其他对象是否有用。
      

  13.   

    copy from wl3721用sqlplus可能不能一次得到结果。在sql命令行下。
    sql> set heading off
    sql> set echo off
    sql> set feedback off
    sql> set lines 200
    sql> set pages 0 
    sql> spool deltabrows.sql 
    sql> select 'truncate table '|| table_name ||';' from user_tables;
    sql> spool off
    sql> set echo on
    sql> set heading on
    sql> set lines 200
    sql> @deltabrows.sql
    可以在执行deltabrows.sql前,先用编辑器打开,看看里面的内容。