是否可以删除Oracle中的所有内容?我发现这个脚本:
Begin for c in (select table_name from user_tables) loop execute immediate ('drop table '||c.table_name||' cascade constraints); end loop; End;
但是我想知道是否有任何东西放在模式,索引,表格,约束…但不是模式(drop user …)中.
谢谢.
解决方法
通常,删除和添加用户是最简单的.如果您对系统或sysdba访问数据库,则这是首选方法.
如果您没有系统级访问权限,并且要擦除模式,则以下sql将生成一系列的drop命令,然后可以执行.
select 'drop '||object_type||' '|| object_name|| DECODE(OBJECT_TYPE,'TABLE',' CASCADE CONSTRAINTS;','') || ';' from user_objects
然后,我通常清理回收站,真正清理干净.说实话,我没有看到很多用于oracle的回收站,希望我可以禁用它,但无论如何:
purge recyclebin;
这将产生一个drop语句列表.并非所有这些都将执行 – 如果您使用级联降级,则丢弃PK_ *索引将失败.但是最终你会有一个很干净的模式.确认:
select * from user_objects
另外,只要添加,您的问题中的Pl / sql块将只删除表,它不会删除所有其他对象.
ps:从某个网站复制,对我有用.测试和工作像一个魅力.