oracle drop 所有,oracle 删除当前schema下的所有对象!

CREATE OR REPLACE PROCEDURE DROP_SCHEMA_OBJECTS (verification VARCHAR2)

IS

CURSOR c1

IS

SELECT *

FROM (SELECT object_name, object_type, 1 AS grp

FROM user_objects

WHERE object_type IN

('PACKAGE',

'PROCEDURE',

'FUNCTION',

'TABLE',

'VIEW',

'TYPE',

'SEQUENCE'

)

AND object_name <> 'BO_SYS_DATAPUMP_PKG'

AND object_name <> 'GO_UTIL_DROP_SCHEMA_OBJECTS'

AND object_name <> 'SYS_BACKUP_PARAM_TBL'

UNION ALL

SELECT object_name, object_type, 2 AS grp

FROM user_objects

WHERE object_type IN ('TYPE')

AND object_name <> 'BO_SYS_DATAPUMP_PKG'

AND object_name <> 'GO_UTIL_DROP_SCHEMA_OBJECTS'

AND object_name <> 'SYS_BACKUP_PARAM_TBL')

ORDER BY grp,

CASE object_type

WHEN 'PACKAGE'

THEN 1

WHEN 'PROCEDURE'

THEN 2

WHEN 'FUNCTION'

THEN 3

WHEN 'VIEW'

THEN 4

ELSE 5

END;

objname VARCHAR2 (255);

objtype VARCHAR2 (255);

objgrp PLS_INTEGER;

verification_str CONSTANT VARCHAR2 (10) := 'sure';

BEGIN

IF verification = verification_str

THEN

OPEN c1;

LOOP

FETCH c1

INTO objname, objtype, objgrp;

EXIT WHEN c1%NOTFOUND;

BEGIN

NULL;

IF objtype = 'TABLE'

THEN

EXECUTE IMMEDIATE 'drop '

|| objtype

|| ' '

|| objname

|| ' cascade constraints purge';

ELSE

EXECUTE IMMEDIATE 'drop ' || objtype || ' ' || objname;

END IF;

DBMS_OUTPUT.put_line ( objtype

|| ' - '

|| objname

|| ' dropped successfully'

);

EXCEPTION

WHEN OTHERS

THEN

NULL;

DBMS_OUTPUT.put_line ( objtype

|| ' - '

|| objname

|| ' dropped failed - '

|| SQLERRM

);

END;

END LOOP;

CLOSE c1;

ELSE

DBMS_OUTPUT.put_line

('Failed to verify the operation, please input verification.');

END IF;

END;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值