先查出会话ID select sid,serial#,username,status
from v$session
where username is not null;然后:
alter system kill session 'sid,serial#' ;
from v$session
where username is not null;然后:
alter system kill session 'sid,serial#' ;
解决方案 »
- 对单张表T,频繁的update、select ,是否需要将T拆成T1、T2
- C#对System.Data的数据类型及Oracle.DataAccess类型,问题
- 怎么在oracle 11新建用户,让这个用户只能访问指定的几个表。
- oracle中求一sql
- 请问在Oracle9i的SQL*PLUS下,创建外键的约束可以有几种方法?
- 在SQL中能不能把yyyy-mm-dd转成yyyy年mm月dd日
- 查找表格中的第一条记录,表格没有主键 SQL文该怎么写
- Check 约束的写法
- 高手帮我看一下这个导库的问题?高分相赠!
- oracle触发器的问题
- 江湖救急,问题很少见!关于一个merge语句?帮忙up有分,谢谢了!
- 求救呀,服务器升级为域控制器后OMS打不开
SQL> select sid,serial#,username,status from v$session
where username = 'TEST'; SID SERIAL# PADDR USERNAME STATUS
---------- ---------- -------- ------------------------------ --------
11 314 542B70E8 TEST INACTIVESQL> alter system kill session '11,314';System altered.
select sid,serial#,username,status
from v$session
where username = '***';杀:
alter system kill session 'sid,serial#' ;
直接写bat文件就可以了.
kill session也是小意思。
AS
s_sid varchar2(8);
s_serial varchar2(16);
s_cs varchar2(40);
BEGIN
select sid,serial into s_sid ,s_serial from v$session
where username = as_username ;
s_cs := sid || ',' || serial
alter system kill session s_cs ;
DROP USER as_username ;END;
AS
s_sid varchar2(8);
s_serial varchar2(16);
s_cs varchar2(40);
BEGIN
select sid,serial into s_sid ,s_serial from v$session
where username = as_username ;
s_cs := sid || ',' || serial
alter system kill session s_cs ;
DROP USER as_username ;END;
如果在多个客户端连到这个数据库中,你如何一次性全部删除呀,这样也可以吗?
where username = '用户名';这条语句在多个客户端连到这个数据库中,会返回多条记录的,但sid,serial#的值是不同的,只是找到所有的sid,serial#值,做个循环一个一个的 alter system kill session 'sid,serial#';
最后:
DROP USER as_username ;
alter system kill session 'sid,serial#';
DROP USER as_username ;
这两个命令不能在存储过程中执行,在你的程序中发这个命令吧。
from v$session
where username = '***';
用spool输出为一个sql脚本,然后调用(没这么做过,楼主测试一下)
select 'alter system kill session '''||sid||','||serial#||''''
usage: killsession.sh 要kill的用户
--------------------------------------------------------
#!/usr/bin/ksh
if [ $# -ne 1 ]; then
echo "usage:$0 user"
exit 1
fiuser=$1
sql="select '#'||sid || ',' || serial# sid from v\$session where username=upper(
'${user}');"sessions=`echo $sql | sqlplus -S "/ as sysdba" | grep "^#"`for x in $sessions
do
echo "alter system kill session '${x#\#}';" | sqlplus -S "/ as sysdba"
done
----------------------------------------------------------------------------------