oracle清除使用者物件

來源:互聯網
上載者:User

標籤:

在使用Oracle資料庫的時候,經常會遇到需要把一個使用者的所有對象重新匯入的操作。這裡介紹兩種常用的方法,方便大家使用。

 一、使用 drop  user  cascade; 可以刪除使用者及所相關的所有對象,可以通過重新建立一個同名對象,然後使用imp 命令從dmp檔案匯入新的對象。二、通過指令碼把清空使用者的所有對象,包含資料表、函數、預存程序等其他對象。採用這種方法,可以無需dba許可權,在你需要完整匯入一個使用者資料的時候非常好用。  附:清除使用者物件指令碼 --PL/SQL Developer Test script 3.0--120-------------------------------------------------------------------- Created on 2007-5-18 by GUIPEI-- drop oracle user‘s all objects-- --------------------------------------------------------------------DECLARE -- Local variables here i INTEGER;  CURSOR cur_objects(obj_type VARCHAR2) IS    SELECT object_name FROM user_objects WHERE object_type IN (obj_type);  obj_name VARCHAR(200); sql_str VARCHAR(500); BEGIN  --drop all tables; OPEN cur_objects(‘TABLE‘);  LOOP    FETCH cur_objects      INTO obj_name;    EXIT WHEN cur_objects%NOTFOUND;     dbms_output.put_line(‘delete table: ‘ || obj_name);    sql_str := ‘drop table ‘ || obj_name || ‘ CASCADE CONSTRAINTS ‘;     EXECUTE IMMEDIATE sql_str;  END LOOP;  CLOSE cur_objects;  --drop all SEQUENCE; OPEN cur_objects(‘SEQUENCE‘);  LOOP    FETCH cur_objects      INTO obj_name;    EXIT WHEN cur_objects%NOTFOUND;     dbms_output.put_line(‘delete SEQUENCE: ‘ || obj_name);    sql_str := ‘drop SEQUENCE ‘ || obj_name;    EXECUTE IMMEDIATE sql_str;  END LOOP;  CLOSE cur_objects;  --drop all VIEW; OPEN cur_objects(‘VIEW‘);  LOOP    FETCH cur_objects      INTO obj_name;    EXIT WHEN cur_objects%NOTFOUND;     dbms_output.put_line(‘delete VIEW: ‘ || obj_name);    sql_str := ‘drop VIEW ‘ || obj_name || ‘ CASCADE CONSTRAINTS ‘;     EXECUTE IMMEDIATE sql_str;  END LOOP;  CLOSE cur_objects;  --drop all FUNCTION; OPEN cur_objects(‘FUNCTION‘);  LOOP    FETCH cur_objects      INTO obj_name;    EXIT WHEN cur_objects%NOTFOUND;     dbms_output.put_line(‘delete FUNCTION: ‘ || obj_name);    sql_str := ‘drop FUNCTION ‘ || obj_name;     EXECUTE IMMEDIATE sql_str;  END LOOP;  CLOSE cur_objects;  --drop all PROCEDURE; OPEN cur_objects(‘PROCEDURE‘);  LOOP    FETCH cur_objects      INTO obj_name;    EXIT WHEN cur_objects%NOTFOUND;     dbms_output.put_line(‘delete PROCEDURE: ‘ || obj_name);    sql_str := ‘drop PROCEDURE ‘ || obj_name;    EXECUTE IMMEDIATE sql_str;  END LOOP;  CLOSE cur_objects;  --drop all PACKAGE; OPEN cur_objects(‘PACKAGE‘);  LOOP    FETCH cur_objects      INTO obj_name;    EXIT WHEN cur_objects%NOTFOUND;     dbms_output.put_line(‘delete PACKAGE: ‘ || obj_name);    sql_str := ‘drop PACKAGE ‘ || obj_name;    dbms_output.put_line(sql_str);     EXECUTE IMMEDIATE sql_str;  END LOOP;  CLOSE cur_objects; END;  oracle解鎖的SQL....

select t2.username,t2.sid,t2.serial#,t2.logon_time 
from v$locked_object t1,v$session t2 
where t1.session_id=t2.sid order by t2.logon_time;
--查看鎖


--alter system kill session ‘sid,serial#‘;
--把鎖給KILL掉
alter system kill session ‘146,21177‘;

oracle清除使用者物件

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.