补充一下。jiezhi的这条语句落下了分区表 select ' drop table '||table_name||';' from user_Part_Tables where ...;
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
drop user 用户名 cascade;
仔细想了一下,上面的脚本代码好像简单了点,忽略了一个重要的问题: 表之间一般会有外键关系的,那么怎么保证删除表的次序是按照正确的次序呢。 可能需要先把表之间的外键引用关系摸出来。好像PL/SQL的脚本要增加不少的代码喽,呵呵。还有一个方法,用第三方的工具,如powerdesign,把数据库结构reverse engineering出来,再生成建表脚本,把其中的drop table部分和alter table drop constraint部分拿出来。 就是我们需要的脚本了。
TO enhydraboy(乱舞的浮尘) :YOU CAN DO LIKE THIS:select 'drop table '||table_name||' cascade constraints;' from user_tables ;
有很多表吗?如果<100,那么就用OEM要方便的多,何必自己写SQL呢?
删除用户难道不好吗? drop user 用户名 cascade;
to shuipipi(水皮皮) : 嗯,不错。 to yangqingdelphi() "删除用户难道不好吗? drop user 用户名 cascade;" 好像太霸道了,连用户都没有了,如果重建,连权限设置都要重新来一次。
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前,先用编辑器打开,看看里面的内容。
select ' drop table '||table_name||';' from user_Part_Tables where ...;
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
表之间一般会有外键关系的,那么怎么保证删除表的次序是按照正确的次序呢。
可能需要先把表之间的外键引用关系摸出来。好像PL/SQL的脚本要增加不少的代码喽,呵呵。还有一个方法,用第三方的工具,如powerdesign,把数据库结构reverse engineering出来,再生成建表脚本,把其中的drop table部分和alter table drop constraint部分拿出来。
就是我们需要的脚本了。
drop user 用户名 cascade;
嗯,不错。
to yangqingdelphi()
"删除用户难道不好吗?
drop user 用户名 cascade;"
好像太霸道了,连用户都没有了,如果重建,连权限设置都要重新来一次。
快速点就直接删除用户:drop user username
直接点:drop user username
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前,先用编辑器打开,看看里面的内容。