我在一个桌面程序中,调用sqlplus执行,数据库的建立,但如果该数据库已经被访问,我无法新建,请问该如何在脚本断开该链接?

解决方案 »

  1.   

    conn user1/user1pwd@test_string1;conn user2/user2pwd@test_string1;  --换用户
      

  2.   

    alter system kill session 'sid,serrial#'
      

  3.   

    找到该连接的会话ID
    select * from v$session;alter system kill session 'sid,serial#';
      

  4.   

    --或者:
    conn user5/user5pwd@test_string2;--使用不同的Oracle服务器时,需要使用不同的连接串
      

  5.   

    show user;
    conn system/manager@连接串;
    show user;
      

  6.   

    1.关闭sqlplus后再运行;
    2.同时按下三键:del+alt+ctrl,中止sqlplus进程再运行之;
    3.机器重启后再运行。
      

  7.   

    没人回答,就想实现这样的use   master     
      declare   @dbname   sysname   
      set   @dbname=N'MyDB'   
      declare   hCForEach   cursor   global   for   select   'kill   '+rtrim(spid)   from   sysprocesses   where   dbid=db_id(@dbname)   
      exec   sp_msforeach_worker   '?'
      

  8.   

    declare   @d   varchar(8000) 
    set   @d= ' ' select   @d=@d+ '   kill   '+cast(spid   as   varchar)+char(13) 
    from   master.sys.sysprocesses   
    where   dbid=db_id( 'ATMS ') exec(@d)
      

  9.   


    有权限的话就直接把会话(session)杀了就可以
      

  10.   

    调用这个plsql块,也可以将这个写成储存过程调用
    declare
        u_sid        varchar2(50);
        u_serialnumber varchar2(50);
        v_killstr  varchar2(100);
        CURSOR c1 IS select trim(s.sid),trim(s.serial#)
              from v$session s;
    begin
       OPEN c1;
       LOOP
          FETCH c1 INTO u_sid,u_serialnumber;
          EXIT WHEN c1%NOTFOUND;
          v_killstr := ''''||trim(u_sid)||','||trim(u_serialnumber)||'''';
          execute immediate 'alter system kill session '||v_killstr;
      END LOOP;
    end ;
      

  11.   

    1、disconnect
    2、切换其他用户
    3、exit or quit