drop all tables;
或drop all tables from database;
答案 0 :(得分:0)
一种方法是使用元数据表生成所有DDL语句
select 'DROP TABLE '||table_name||';'
from user_tables
运行查询并将输出复制并粘贴,其中将包含用于删除表的语句
答案 1 :(得分:0)
一种解决方案是使用DROP
选项CASCADE
来拥有对象的用户。
DROP USER myuser CASCADE;
这将有效地删除所有用户对象(表,视图,包,过程等)。然后,您将需要重新创建用户。
否则,如果您想将操作范围限制为仅删除所有表(以及相关的约束),则可以编写一个过程来动态生成并执行一系列DROP TABLE
语句:
BEGIN
FOR cur_rec IN (SELECT object_name FROM user_objects WHERE object_type = 'TABLE')
LOOP
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE "' || cur_rec.object_name || '" CASCADE CONSTRAINTS';
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line ('FAILED: DROP TABLE "' || cur_rec.object_name || '"');
END;
END LOOP;
END;
/