首页 > 技术文章 > oracle删除用户所有的表

smallrock 2014-02-10 13:13 原文

删除用户所有的表,带有级联关系:

 1 --创建存储过程
 2 CREATE OR REPLACE 
 3 PROCEDURE DROPTABLES IS 
 4   V_SQL VARCHAR2(2000); 
 5   CURSOR CUR IS SELECT TABLE_NAME FROM USER_TABLES ORDER BY TABLE_NAME;
 6 BEGIN
 7 FOR ROWS IN CUR LOOP V_SQL := 'drop TABLE ' || ROWS.TABLE_NAME || ' cascade constraints'; 
 8 DBMS_OUTPUT.PUT_LINE(V_SQL); 
 9 EXECUTE IMMEDIATE V_SQL;
10 END LOOP; 
11 EXECUTE IMMEDIATE 'purge recyclebin';
12 END DROPTABLES;
13 --执行存储过程
14 begin
15   -- Call the procedure
16   droptables;
17 end;

建议在执行该存储过程之前先对数据库进行备份。

推荐阅读