刪除正在連線的ORACLE使用者

2021-06-19 01:42:55 字數 964 閱讀 8310

oracle中,要刪除乙個使用者,必須保證該使用者的所有連線都已斷開,才能進行刪除。

所以在用sql指令碼刪除使用者時,就必須先保證該使用者的所有session都已被清除掉,請看下面的指令碼

create or replace procedure dropuser(user_name in varchar2) authid current_user is

cnt integer;

sqlstr varchar2(1000);

begin

sqlstr := 'alter user ' || user_name || ' account lock';

execute immediate sqlstr;

for x in (select * from v$session where username=user_name)

loop

--清除使用者session

sqlstr := 'alter system disconnect session ''' || x.sid || ',' || x.serial# || ''' immediate';

begin

execute immediate sqlstr;

exception when others then

null;

end;

end loop;

loop

select count(*) into cnt from v$session where username=user_name;

exit when cnt=0;

dbms_lock.sleep(3);

end loop;

sqlstr := 'drop user' || user_name || 'cascade';

end dropuser;

/exec dropuser('user1');

尋找正在連線中的網路連線

尋找正在連線中的網路連線,並開啟網路連線的網路連線共享功能。注意 要設定為管理員許可權啟動工程。否則enablesharing會失敗。include include include include pragma comment lib,iphlpapi.lib pragma comment lib,...

尋找正在連線中的網路連線

尋找正在連線中的網路連線,並開啟網路連線的網路連線共享功能。注意 要設定為管理員許可權啟動project。否則enablesharing會失敗。include include include include pragma comment lib,iphlpapi.lib pragma comment...

Oracle刪除當前連線使用者

當你使用pl sql developer刪除使用者時,經常會出現這樣的提示 無法刪除當前連線的使用者 解決方法我直接貼出sql語句 刪除當前連線使用者 1 首先切換到 system 使用者 2 查詢使用者各程序相對應的 sid serial 注意 這裡的 username 必須大寫 select s...