oracle数据库用户如何删除该用户下所有的表

LOVEJA_VA 2018-02-19 08:24:52
本人数据库名字为scott
需要一次性删除该用户下所有的表

以下是通过网络查询出来的一些相关语句但是不会如何逐条执行,若是能够有直接删除的方法希望能够告诉下,谢谢
select 'drop table '||table_name||';'
from cat
where table_type='TABLE';
...全文
2075 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
碧水幽幽泉 2018-02-23
  • 打赏
  • 举报
回复
引用 12 楼 jdsnhan 的回复:
直接把当前用户drop了,然后再建立

这样一来,其他数据库对象也都一起删除了。
jdsnhan 2018-02-23
  • 打赏
  • 举报
回复
直接把当前用户drop了,然后再建立
LOVEJA_VA 2018-02-22
  • 打赏
  • 举报
回复
引用 7 楼 cattpon 的回复:
不是用 项 就可以了吗?
怎么用啊
LOVEJA_VA 2018-02-22
  • 打赏
  • 举报
回复
引用 8 楼 XPH_123 的回复:
BEGIN E_SQL = 'SELECT 'DROP TABLE '||TABLE_NAME||';' FROM USER_TABLES;'; EXECUTE IMMEDIATE E_SQL; ....
老铁报错啊,你还是自己试过了再发表下吧
  • 打赏
  • 举报
回复

declare
v_sql varchar2(2000) ;
CURSOR cur is select table_name from user_tables order by table_name;
begin
  for rows in cur loop v_sql := 'drop TABLE ' || rows.table_name||' cascade constraints';
dbms_output.put_line(v_sql);
execute immediate v_sql;
end loop;
end;
xphDeV 2018-02-21
  • 打赏
  • 举报
回复
BEGIN E_SQL = 'SELECT 'DROP TABLE '||TABLE_NAME||';' FROM USER_TABLES;'; EXECUTE IMMEDIATE E_SQL; ....
LOVEJA_VA 2018-02-21
  • 打赏
  • 举报
回复
引用 5 楼 baidu_36457652 的回复:
把这个字符串 拼接后 用 execute immediate 执行动态SQL的方式
额不会用啊
cattpon 2018-02-21
  • 打赏
  • 举报
回复
不是用 项 就可以了吗?
LOVEJA_VA 2018-02-20
  • 打赏
  • 举报
回复
引用 3 楼 ckc 的回复:
使用一些工具比较pl/sql,有比较方便的办法来删除一个用户下的所有表。 这些事情如果经常要做,应该自己动手写一些脚本来处理
就是因为不知道怎么弄,我希望的是用begin这些能够逐条语句实现
ckc 2018-02-20
  • 打赏
  • 举报
回复
使用一些工具比较pl/sql,有比较方便的办法来删除一个用户下的所有表。 这些事情如果经常要做,应该自己动手写一些脚本来处理
LOVEJA_VA 2018-02-20
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
select 'drop table '||table_name||';' from user_tables; 再把查询出来的语句,考出来,并执行他们
我也知道拷贝出来啊,但是如何用SQL语句表示出来,把这些语句一起执行
卖水果的net 2018-02-20
  • 打赏
  • 举报
回复
select 'drop table '||table_name||';' from user_tables; 再把查询出来的语句,考出来,并执行他们
  • 打赏
  • 举报
回复
把这个字符串 拼接后 用 execute immediate 执行动态SQL的方式

17,081

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧