alter session sid kill;

解决方案 »

  1.   

    alter system kill session ‘sid,serial#’;
      

  2.   

    或用pl/sqldev   tools->sessions kill
      

  3.   

    orakill sid thread sid: the oracle instance to target
    thread: thread id of the thread to kill.
      

  4.   

    怎样查找产生锁的SQL 语句
    查询V$LOCK 和V$SESSION 只给出会话级的信息。但是,怎样才能查找到产生锁的那个
    会话中的S Q L语句?通过如下的脚本查询V $ S Q LTEXT 视图与V$ACCESS 和V $ S E S S I O N的联
    接,可以得到答案。该脚本可以确定在数据库中持有锁的SQL 语句select s.username username,
    a.sid sid,
    a.owner||'.'||a.object object,
    s.lockwait,
    t.sql_text SQL
    from v$sqltext t,
    v$session s,
    v$access a
    where t.address=s.sql_address
    and t.hash_value=s.sql_hash_value
    and s.sid = a.sid
    and a.owner != 'SYS'
    and upper(substr(a.object,1,2)) != 'V$';select s.username username,
    a.sid sid,
    a.owner||'.'||a.object object,
    s.lockwait,
    t.sql_text SQL
    from v$sqltext t,
    v$session s,
    v$access a
    where t.address=s.sql_address
    and t.hash_value=s.sql_hash_value
    and (upper(t.sql_text) like '%UPDATE%'
    or upper(t.sql_text) like '%INSERT%'
    or upper(t.sql_text) like '%DELETE%')
    and s.sid = a.sid
    and a.owner != 'SYS'
    and upper(substr(a.object,1,2)) != 'V$';
    从Oracle 中删除用户会话
    可以使用A LTER SYSTEM KILL SESSION ...... 命令在数据库级删除用户会话。为了删除会
    话,您需要指定会话的索引号( SID, session index number)和序列号,这些号通过V $ S E S S I O N
    视图可以找到,如下所示:
    下列查询标识用户J WARD 的所有会话:
    SELECT sid, serial#
    FROM v$session
    WHERE USERNAME = 'JWARD';PROCESS 列的值对应于操作系统进程I D。在上例中,操作系统进程ID 的值为1 , 1 0 9。
    一旦确定了该会话的SID 和SERIAL# ,可以通过执行以下命令删除该阻塞的会话:
    ALTER SYSTEM KILL SESSION 'SID, SERIAL#';
    例子:
    SQL> ALTER SYSTEM KILL SESSION '7, 15';