是否可以删除Oracle中方案中的所有内容?我找到了这个脚本:
Begin
for c in (select table_name from user_tables) loop
execute immediate ('drop table "'||c.table_name||'" cascade constraints');
end loop;
End;
/
但我想知道是否有任何东西可以删除架构、索引、表、约束中的所有内容……但不是架构(删除用户……)。
谢谢。
原文由 zerosssa 发布,翻译遵循 CC BY-SA 4.0 许可协议
通常,删除和添加用户是最简单的。如果您具有对数据库的系统或 sysdba 访问权限,则这是首选方法。
如果您没有系统级别的访问权限,并且想要清理您的架构,则以下 sql 将生成一系列删除语句,然后可以执行这些语句。
然后,我通常会清理回收站以真正清理东西。老实说,我没有看到 oracle 的回收站有很多用处,我希望我可以禁用它,但无论如何:
这将生成一个 drop 语句列表。并非所有这些都会执行 - 如果您使用级联删除,删除 PK_* 索引将失败。但最终,您将拥有一个非常干净的架构。确认:
另外,只是补充一下,您问题中的 Pl/sql 块将仅删除表,它不会删除所有其他对象。
ps:从某个网站复制的,对我有用。经过测试并像魅力一样工作。