共計 2243 個字符,預(yù)計需要花費 6 分鐘才能閱讀完成。
這篇文章主要為大家展示了“oracle 中出現(xiàn) ORA-01940: 無法刪除當(dāng)前已連接的用戶怎么辦”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“oracle 中出現(xiàn) ORA-01940: 無法刪除當(dāng)前已連接的用戶怎么辦”這篇文章吧。
在現(xiàn)場作業(yè)時,需要先刪除用戶;在執(zhí)行 drop user 時提示“ORA-01940: cannot drop a user that is currently connected”,當(dāng)時的環(huán)境如下:
操作系統(tǒng):Windows XP
數(shù)據(jù)庫:Oracle 10.2.0.1
當(dāng)時時間比較著急,直接采取了釜底抽薪的辦法——拔網(wǎng)線,這招很管用,再次執(zhí)行 drop user 就成功了。考慮到以后不一定所有場合都允許你采取這種簡單粗暴的辦法,就在虛擬機(jī)上重現(xiàn)了這個報錯,尋求一種較為溫和的解決辦法。
首先我打開兩個虛擬機(jī),在 1 號虛擬機(jī)上啟動了兩個實例,打開了 3 個連接到 scott 用戶的窗口;在 2 號虛擬機(jī)上啟動了一個實例,打開了一個連接到 scott 用戶的窗口。這時我登錄 sys 用戶執(zhí)行 drop user 操作,復(fù)現(xià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 用戶的連接狀況;
點擊 (此處) 折疊或打開
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 上述連接;
點擊 (此處) 折疊或打開
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)所有連接被清除完畢;
點擊 (此處) 折疊或打開
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)就明白了。
點擊 (此處) 折疊或打開
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,看一下是否能夠成功;
點擊 (此處) 折疊或打開
SQL
SQL drop user scott cascade;
User dropped.
SQL
由此,ORA-01940 報錯得到順利解決。
以上是“oracle 中出現(xiàn) ORA-01940: 無法刪除當(dāng)前已連接的用戶怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!