加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle中删除用户下所有对象

发布时间:2020-12-12 14:45:34 所属栏目:百科 来源:网络整理
导读:Oracle中删除用户下所有对象 SQL语句: DECLARE TYPE name_list IS TABLE OF VARCHAR2( 100 ); TYPE type_list IS TABLE OF VARCHAR2( 100 ); --表对象 Tab_name name_list := name_list(); Tab_type type_list := type_list(); sql_str VARCHAR2( 1000 ); B

Oracle中删除用户下所有对象


SQL语句:

DECLARE
  TYPE name_list IS TABLE OF VARCHAR2(100);
  TYPE type_list IS TABLE OF VARCHAR2(100);
  --表对象
  Tab_name name_list := name_list();
  Tab_type type_list := type_list();
  sql_str VARCHAR2(1000);
BEGIN
  sql_str := 'SELECT UO.OBJECT_NAME,UO.OBJECT_TYPE FROM USER_OBJECTS UO WHERE UO.OBJECT_TYPE NOT IN (''INDEX'',''LOB'') AND SUBSTR(UO.OBJECT_NAME,4) <> ''BIN$'' ORDER BY UO.OBJECT_NAME ASC';

  EXECUTE IMMEDIATE sql_str BULK COLLECT INTO Tab_name,Tab_type;
  --删除对象
  FOR i IN Tab_name.FIRST.. Tab_name.LAST LOOP
    sql_str := 'DROP ' || Tab_type(i) ||' "'|| Tab_name(i)||'" CASCADE CONSTRAINTS';
    dbms_output.put_line(sql_str);
    EXECUTE IMMEDIATE sql_str;
  END LOOP;
  dbms_output.put_line('已成功删除对象');
END;
/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读