有没有删除制定模式下的所有对象的包

[复制链接]
查看11 | 回复2 | 2009-10-9 08:28:00 | 显示全部楼层 |阅读模式
请问高手,
sys.dbms_ddl.alter_compile 函数可以编译所用对象,
是不是有删除制定模式下的所有Objects的函数。
急用,谢谢赐教。
回复

使用道具 举报

千问 | 2009-10-9 08:28:00 | 显示全部楼层
直接drop user ... cascade, 然后重建 user, 更为简洁。
回复

使用道具 举报

千问 | 2009-10-9 08:28:00 | 显示全部楼层
谢谢Oldwain的解答。我从同事那里找到了一个这样的函数,如下:
create or replace procedure exObjectsDrop_P(nil in integer := 0)
as
cursor exObject is select object_type,object_name

from user_objects

where object_type='PROCEDURE'

orobject_type='FUNCTION'

orobject_type='SEQUENCE'

orobject_type='TABLE'

orobject_type='VIEW'

order by object_type;
vSQLDrop varchar2(300);
vSQLErrm varchar2(600);
vSQLCode number;
vCursorID integer;
exam exObject%ROWTYPE;
begin
DBMS_OUTPUT.PUT_LINE('BEGIN TIME: '||to_char(sysdate));
open exObject;
vCursorID := DBMS_SQL.OPEN_CURSOR;
--*******************************************************************************************************************
loop
fetch exObject into exam;
exit when exObject%NOTFOUND;
begin
--***************************************************************************************************************
if upper(exam.object_name)upper('exObjectsDrop_P') then
vSQLDrop := 'drop '||exam.object_type||' '||exam.object_name;
end if;
DBMS_SQL.PARSE(vCursorID, vSQLDrop, DBMS_SQL.V7);
--***************************************************************************************************************
exception when others then
vSQLCode := SQLCODE;
vSQLErrm := SUBSTR(SQLERRM,1,600);
DBMS_OUTPUT.PUT_LINE('ERROR: '||' '||vSQLErrm);
end;
--***************************************************************************************************************
end loop;
--*******************************************************************************************************************
DBMS_SQL.CLOSE_CURSOR(vCursorID);
close exObject;
DBMS_OUTPUT.PUT_LINE('END TIME: '||to_char(sysdate));
end exObjectsDrop_P;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行