作者LKO (....)
看板Database
标题[SQL ] 如何大量批次删除连线中的User?
时间Wed Oct 12 11:35:32 2011
使用的是Oracle 11gR2
因为现在都会把正式区的资料倒到测试区
为了避免测试区的User Account的一些相关资料有问题
所以每次倒资料时都会把测试帐号删掉
当然...因为是测试区
所以很多user都会连在上面做事
例如当我要删除 testuser 这个帐号的时候
会出现 testuser连线中
我会用下面这个指令去捞出他们共有多少连线
select SID||','||SERIAL# AS SESSIONDATA
from v$session
where username='testuser';
但是 SID出来之後....
常常会有几十笔
我用指令
ALTER SYSTEM DISCONNECT SESSION '12345,888' IMMEDIATE;
这样的指令一个一个删实在太慢了
想请问有批次中断或者强制中断所有连线USER的指令吗?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.28.175
1F:推 roywu607:写cusor 用 loop 10/12 13:47
2F:→ FireLake:可以改一下你的select 来产生所有的kill指令, 例如: 10/12 13:48
3F:→ FireLake:select 'alter system kill session ''' || sid || ',' 10/12 13:53
4F:→ FireLake:|| serial# || ''';' from v$session where ...... 10/12 13:57
5F:推 brian1222:楼上的版友可以写详细一点吗?小弟我也想知道:) 10/12 14:43
6F:推 kobedisel:直接用dynamic sql就可以做掉啦 10/15 23:29