作者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