***********如何删除一个在线的用户(在线等待)*****************

yxsalj 2004-12-06 09:41:58
我创建了一个资料档案库用户.要删除时,提示:
ORA-01940: cannot drop a user that is currently connected
该如何操作???
...全文
143 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bianxian 2004-12-07
  • 打赏
  • 举报
回复
up
haifeng1012 2004-12-07
  • 打赏
  • 举报
回复
好招!!顶!!!
zgh2003 2004-12-07
  • 打赏
  • 举报
回复
先锁定该用户,不让他有再连接的机会,再kill掉已存在的会话,最后想
怎么着,就随意啦,哈哈!
操作如下:
SQL>alter user username account lock;
SQL>alter system kill 'sid,serial#'
yxsalj 2004-12-07
  • 打赏
  • 举报
回复
大家都忽略了一个问题,资料库用户的session杀完了又有新的生成,所以这不行的.
不过,我已找到解决的方法了,先不说,看大家能否想到一块去.
GerryYang 2004-12-07
  • 打赏
  • 举报
回复
如果用Toad什么的话,可以跟踪session,将你要杀的session直接杀了就可以.
否则只有想楼上那样了.
zhaokeke2004 2004-12-07
  • 打赏
  • 举报
回复
必须想要中止用户的会话
select sid,serial# from v$session where username='user_name'
alter system kill session 'sid,serial#'
drop user user_name
yxsalj 2004-12-06
  • 打赏
  • 举报
回复
UP
yxsalj 2004-12-06
  • 打赏
  • 举报
回复
而且杀掉之后马上又有新的session了.该用什么办法呢?
yxsalj 2004-12-06
  • 打赏
  • 举报
回复
楼上这样杀太多了把
liuyi8903 2004-12-06
  • 打赏
  • 举报
回复
先强行杀掉连接的会话.DECLARE
TYPE V_CURSOR IS REF CURSOR;
MYCUR V_CURSOR;
V_DDL VARCHAR2(2000);
BEGIN
OPEN MYCUR FOR
SELECT 'alter system kill session ''' || SID || ',' || SERIAL# || ''';'
FROM V$SESSION
WHERE USERNAME IS NOT NULL
AND STATUS = 'INACTIVE'
AND LAST_CALL_ET / 60 / 60 >= 6;
LOOP
FETCH MYCUR
INTO V_DDL;
EXIT WHEN MYCUR%NOTFOUND;
EXECUTE IMMEDIATE V_DDL;
END LOOP;
CLOSE MYCUR;
END;

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧