我是想写一个批处理,直接杀掉Oracle中用户的会话session,
首先我写了一个批处理文件是这样:
sqlplus system/css123@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=CQ)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=qhnh)));
spool c:\killsession.bat;
select 'alter system kill session '''||sid||','||serial#||''';' from v$session where username='PAMEDICAL';
spool off;然后再调用c盘下面的killsession.bat 去杀掉session ,这样思路是正确的吧,但是 为什么,C盘产生不了这个文件呢,一运行第一个批处理文件,就报错,是不是spool 前面要设置很多东西啊,我菜鸟不懂怎么设置,也不懂什么意思,高人们指点!谢谢

解决方案 »

  1.   

    set heading off
    set feedback off
    set term off
    spool C:\TableName.txt
    spool off
     这段话 该写到什么地方,什么意思呢?望高手详细给我讲解一下,不胜感激涕零!
      

  2.   

    建立批处理文件执行的文件kill.sql
    内容如下:
       set trimspool on 
      set linesize 120 
      set pagesize 2000 
      set newpage 1 
      set heading off 
      set term off 
      spool 路径+文件名 
      select 'alter system kill session '''||sid||','||serial#||''';' from v$session where username='PAMEDICAL'; 
      spool off 建立.bat文件内容如下
    sqlplus system/css123@服务名称 @kill.sql
      

  3.   

    --D:\下建立一个killsql.sql的文件,内容如下:set heading off 
    set feedback off 
    set term off 
    spool d:\killsession.sql
    SELECT 'alter system kill session ''' || SID || ',' || SERIAL# || ''' immediate;'
      FROM V$SESSION
     WHERE USERNAME = 'SCOTT';
    spool OFF
    @@d:\killsession.sql
    exit--再建立一个test.bat的文件,内容如下:
    sqlplus lgt/lgt @d:\killsql.sql 
    --在dos窗口直接执行text.bak就可以kill 用户PAMEDICAL了.