plsql oracle 删除用户密码,oracle – PLSQL – 删除用户的所有数据库对象

create or replace

FUNCTION DROP_ALL_SCHEMA_OBJECTS RETURN NUMBER AS

PRAGMA AUTONOMOUS_TRANSACTION;

cursor c_get_objects is

select object_type,'"'||object_name||'"'||decode(object_type,'TABLE' ,' cascade constraints',null) obj_name

from user_objects

where object_type in ('TABLE','VIEW','PACKAGE','SEQUENCE','SYNONYM', 'MATERIALIZED VIEW')

order by object_type;

cursor c_get_objects_type is

select object_type, '"'||object_name||'"' obj_name

from user_objects

where object_type in ('TYPE');

BEGIN

begin

for object_rec in c_get_objects loop

execute immediate ('drop '||object_rec.object_type||' ' ||object_rec.obj_name);

end loop;

for object_rec in c_get_objects_type loop

begin

execute immediate ('drop '||object_rec.object_type||' ' ||object_rec.obj_name);

end;

end loop;

end;

RETURN 0;

END DROP_ALL_SCHEMA_OBJECTS;

创建上述功能(自动化,可以通过函数调用DDL)

那你可以:

select DROP_ALL_SCHEMA_OBJECTS from dual;

当你想删除所有的对象时,确保你不要尝试删除proc你的运行(我不关心procs,为什么我没有procs或函数在object_type列表中)

如果你想放弃所有你需要一个匿名块

但是我需要能够从一个只允许ansi sql(而不是plsql)这样一个存储过程的工具来做到这一点。

请享用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值