Oracle 删除用户所有对象的脚本
2009-07-28 10:40
453 查看
作者:LiaoJL 发表于: 2008年7月24日 21:01
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明。
http://www.liaojl.com/archives/2008/07/oracle-delete-schemas.html
对于测试数据库,经常会涉及到用户数据重新导入的情况,在不赋予用户创建和删除用户的前提下,普通用户也可以通过脚本来删除自己模式下的表、视图等对象。
下面是一个删除用户所有表的脚本:
删除存储过程等对象:
通过光标循环操作,可以实现其它对象的删除。
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明。
http://www.liaojl.com/archives/2008/07/oracle-delete-schemas.html
对于测试数据库,经常会涉及到用户数据重新导入的情况,在不赋予用户创建和删除用户的前提下,普通用户也可以通过脚本来删除自己模式下的表、视图等对象。
下面是一个删除用户所有表的脚本:
DECLARE CURSOR MYCURSOR IS SELECT TABLE_NAME FROM USER_TABLES; VTABLE_NAME VARCHAR2(60); sql_stmt varchar2(100); BEGIN OPEN MYCURSOR; LOOP FETCH MYCURSOR INTO VTABLE_NAME; EXIT WHEN MYCURSOR%NOTFOUND; sql_stmt := 'drop table "'||VTABLE_NAME||'" cascade constraints'; EXECUTE IMMEDIATE sql_stmt; END LOOP; CLOSE MYCURSOR; END; /
删除存储过程等对象:
DECLARE CURSOR MYCURSOR IS SELECT NAME,TYPE FROM USER_SOURCE; vsource_name VARCHAR2(60); vsource_type VARCHAR2(60); sql_stmt VARCHAR2(100); BEGIN OPEN MYCURSOR; LOOP FETCH MYCURSOR INTO vsource_name,vsource_type; EXIT WHEN MYCURSOR%NOTFOUND; sql_stmt := 'drop '||vsource_type||' "'||vsource_name||'"'; EXECUTE IMMEDIATE sql_stmt; --dbms_output.put_line(sql_stmt); END LOOP; CLOSE MYCURSOR; END; / quit;
通过光标循环操作,可以实现其它对象的删除。
DECLARE CURSOR MYCURSOR IS SELECT SYNONYM_NAME FROM USER_SYNONYMS; VTABLE_NAME VARCHAR2(60); sql_stmt varchar2(100); BEGIN OPEN MYCURSOR; LOOP FETCH MYCURSOR INTO VTABLE_NAME; EXIT WHEN MYCURSOR%NOTFOUND; sql_stmt := 'drop SYNONYM "'||VTABLE_NAME||'"'; EXECUTE IMMEDIATE sql_stmt; END LOOP; CLOSE MYCURSOR; END; /
相关文章推荐
- oracle sql*plus - 删除当前用户的所有对象
- Oracle中删除用户下所有对象
- Oracle: 删除当前用户的所有对象(表、视图、触发器、存储过程、函数)
- oracle 删除用户下的所有用户对象
- oracle删除某用户下所有对象
- [转载]Oracle SQL*PLUS - 删除当前用户的所有对象
- oracle 删除所有用户对象
- oracle删除当前用户中所有对象(表,视图,触发器,存储过程,函数)
- ORACLE下删除当前用户下所有对象的SQL
- Oracle基础知识--------------删除oracle当前用户下的所有对象
- Oracle中删除用户下所有对象的多种方法
- ORACLE删除某用户下所有对象
- oracle 导入导出数据库、删除用户以及该用户所有的对象
- oracle中删除某个用户的所有对象
- Oracle中删除用户下所有对象的多种方法
- Oracle删除用户下的所有对象
- ORACLE删除某用户下所有对象
- oracle-删除某用户下所有对象
- Oracle: 删除当前用户的所有对象(表、视图、触发器、存储过程、函数)
- Oracle 中如何删除一个用户拥有的所有对象