您的位置:首页 > 数据库 > Oracle

oracle删除指定用户下的表与Sequence

2013-04-21 17:19 169 查看
-- 以用户SMTJ2012为例
-- 删除所有表
declare owner_name varchar(20);
cursor cur1 is select table_name from dba_tables where owner=owner_name;
begin
owner_name := 'SMTJ2012';
for cur2 in cur1 loop
execute immediate 'drop table '||owner_name||'.'||cur2.table_name;
end loop;
end;
-- 如果 dba_tables 没有权限的话可以使用 user_tables,上述cur1可以改成
-- select table_name from user_tables;
-- user_tables为owner为本用户的表,注意与dba_tables的区别

-- 删除所有SEQ
declare owner_name varchar(20);
cursor cur1 is select sequence_name from user_sequences;
begin
owner_name := 'SMTJ2012';
for cur2 in cur1 loop
execute immediate 'drop sequence '||owner_name||'.'||cur2.sequence_name;
end loop;
end;


运行效果:





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐