概述
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,' 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)这样一个存储过程的工具来做到这一点。
请享用。
最后
以上就是欣喜向日葵为你收集整理的oracle删除用户名数据,oracle – PLSQL – 删除用户的所有数据库对象的全部内容,希望文章能够帮你解决oracle删除用户名数据,oracle – PLSQL – 删除用户的所有数据库对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复