+ -
当前位置:首页 → 问答吧 → 我要调用sqlplus执行sql脚本,问如何断开当前已经连接的进程

我要调用sqlplus执行sql脚本,问如何断开当前已经连接的进程

时间:2008-11-28

来源:互联网

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

作者: wjmwjmwjm   发布时间: 2008-11-28

SQL code
conn user1/user1pwd@test_string1;

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

作者: BlueskyWide   发布时间: 2008-11-28

alter system kill session 'sid,serrial#'

作者: lovexueer   发布时间: 2008-11-28

找到该连接的会话ID
select * from v$session;

alter system kill session 'sid,serial#';

作者: wiler   发布时间: 2008-11-28

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

作者: BlueskyWide   发布时间: 2008-11-28

能否写个完整的?

作者: wjmwjmwjm   发布时间: 2008-11-28

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

作者: BlueskyWide   发布时间: 2008-11-28

up

作者: wjmwjmwjm   发布时间: 2008-11-28

没有了吗

作者: wjmwjmwjm   发布时间: 2008-11-28

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

作者: BlueskyWide   发布时间: 2008-11-28

sql脚本!!

作者: wjmwjmwjm   发布时间: 2008-11-28

可以使用toad试试

作者: wangsong145   发布时间: 2008-11-30

没人回答,就想实现这样的

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 '?'

作者: wjmwjmwjm   发布时间: 2008-12-01

救命啊,总是没人回答

作者: wjmwjmwjm   发布时间: 2008-12-01

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)

作者: fangjunss   发布时间: 2011-09-27