這篇文章主要為大家展示了“oracle中出現(xiàn)ORA-01940:無法刪除當(dāng)前已連接的用戶怎么辦”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“oracle中出現(xiàn)ORA-01940:無法刪除當(dāng)前已連接的用戶怎么辦”這篇文章吧。

在現(xiàn)場(chǎng)作業(yè)時(shí),需要先刪除用戶;在執(zhí)行drop user時(shí)提示“ORA-01940: cannot drop a user that is currently connected”,當(dāng)時(shí)的環(huán)境如下:
操作系統(tǒng):Windows XP
數(shù)據(jù)庫(kù):Oracle 10.2.0.1
當(dāng)時(shí)時(shí)間比較著急,直接采取了釜底抽薪的辦法——拔網(wǎng)線,這招很管用,再次執(zhí)行drop user就成功了。考慮到以后不一定所有場(chǎng)合都允許你采取這種簡(jiǎn)單粗暴的辦法,就在虛擬機(jī)上重現(xiàn)了這個(gè)報(bào)錯(cuò),尋求一種較為溫和的解決辦法。
首先我打開兩個(gè)虛擬機(jī),在1號(hào)虛擬機(jī)上啟動(dòng)了兩個(gè)實(shí)例,打開了3個(gè)連接到scott用戶的窗口;在2號(hào)虛擬機(jī)上啟動(dòng)了一個(gè)實(shí)例,打開了一個(gè)連接到scott用戶的窗口。這時(shí)我登錄sys用戶執(zhí)行drop user操作,復(fù)現(xiàn)了上述報(bào)錯(cuò)。
點(diǎn)擊(此處)折疊或打開
[oracle@enmoedu1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2..3.0 Production on Fri Apr 17 21:25:40 2015
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2..3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> drop user scott cascade;
drop user scott cascade
*
ERROR at line 1:
ORA-01940: cannot drop a user that is currently connected
SQL>
首先,我們查看scott用戶的連接狀況;
點(diǎn)擊(此處)折疊或打開
SQL> select username,sid,serial# from v$session where username='SCOTT';
USERNAME SID SERIAL#
------------------------------ ---------- ----------
SCOTT 19 355
SCOTT 20 13693
SCOTT 26 15
SCOTT 127 7
SQL>
接下來,我們kill上述連接;
點(diǎn)擊(此處)折疊或打開
SQL> alter system kill session'19,355';
System altered.
SQL> alter system kill session'20,13693';
System altered.
SQL> alter system kill session'26,15';
System altered.
SQL> alter system kill session'127,7';
System altered.
SQL>
再次查詢scott用戶的連接狀況,確認(rèn)所有連接被清除完畢;
點(diǎn)擊(此處)折疊或打開
SQL>
SQL> select username,sid,serial# from v$session where username='SCOTT';
USERNAME SID SERIAL#
------------------------------ ---------- ----------
SCOTT 19 355
SCOTT 20 13693
SCOTT 26 15
SCOTT 127 7
SQL>
看到這兒,不要驚慌,不要以為這些連接還在;我們只要查詢一下上述連接的狀態(tài)就明白了。
點(diǎn)擊(此處)折疊或打開
SQL>
SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null;
SADDR SID SERIAL# PADDR USERNAME STATUS
-------- ---------- ---------- -------- ------------------------------ --------
578CC410 19 355 583AD258 SCOTT KILLED
578C9890 20 13693 583AD258 SCOTT KILLED
578B9390 26 15 583AD258 SCOTT KILLED
579DED90 120 95 5836FFB4 SYS ACTIVE
579CBD10 127 7 583AD258 SCOTT KILLED
SQL>
由上述查詢結(jié)果得知,scott用戶的所有連接已經(jīng)被kill了;現(xiàn)在我們執(zhí)行drop user,看一下是否能夠成功;
點(diǎn)擊(此處)折疊或打開
SQL>
SQL> drop user scott cascade;
User dropped.
SQL>
由此,ORA-01940報(bào)錯(cuò)得到順利解決。
以上是“oracle中出現(xiàn)ORA-01940:無法刪除當(dāng)前已連接的用戶怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!
分享文章:oracle中出現(xiàn)ORA-01940:無法刪除當(dāng)前已連接的用戶怎么辦-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://chinadenli.net/article42/gdhec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、面包屑導(dǎo)航、企業(yè)網(wǎng)站制作、手機(jī)網(wǎng)站建設(shè)、營(yíng)銷型網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容