多创建了一个用户,想要给它删除掉
一 上执行过程,确实删除成功了
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> DROP USER c##xyt CASCADE;
DROP USER c##xyt CASCADE
*
第 1 行出现错误:
ORA-01940: 无法删除当前连接的用户
SQL> select saddr,sid,serial#,paddr,username,status from v$session where username = 'c##xyt';
未选定行
SQL> ALTER USER C##XYT account LOCK;
用户已更改。
SQL> select saddr,sid,serial#,paddr,username,status from v$session where username = 'c##xyt';
未选定行
SQL> select saddr,sid,serial#,paddr,username,status from v$session where username = 'C##XYT';
SADDR SID SERIAL# PADDR
---------------- ---------- ---------- ----------------
USERNAME STATUS
------------------------------ --------
00007FF838443EA0 3 36748 00007FF8352B70C0
C##XYT INACTIVE
00007FF83643B740 185 50332 00007FF8373A4D08
C##XYT INACTIVE
00007FF83850AD70 395 15275 00007FF8384087D0
C##XYT INACTIVE
SQL> alter system kill session '3,36748';
系统已更改。
SQL> alter system kill session '185,50332';
系统已更改。
SQL> alter system kill session '395,15275';
系统已更改。
SQL> DROP USER C##XYT CASCADE;
用户已删除。
SQL>
二 步骤解析
2.1 锁定账户
将要删除的用户给锁定掉
SQL> ALTER USER C##XYT account LOCK;
用户已更改。
2.2 查询待连接用户的进程号
SQL> select saddr,sid,serial#,paddr,username,status from v$session where username = 'C##XYT';
正常来说都会有进程的,没有可能是因为
2.3 根据进程号kill掉进程
SQL> alter system kill session '3,36748';
系统已更改。
SQL> alter system kill session '185,50332';
系统已更改。
SQL> alter system kill session '395,15275';
系统已更改。
2.4 级联删除掉用户
SQL> DROP USER C##XYT CASCADE;
用户已删除。
三 注意事项
oracle似乎要考虑大小写,比方说,我上头第一次查进程号时,查不到
SQL> select saddr,sid,serial#,paddr,username,status from v$session where username = 'c##xyt';
未选定行
SQL> select saddr,sid,serial#,paddr,username,status from v$session where username = 'C##XYT';
SADDR SID SERIAL# PADDR
---------------- ---------- ---------- ----------------
USERNAME STATUS
------------------------------ --------
00007FF838443EA0 3 36748 00007FF8352B70C0
C##XYT INACTIVE
00007FF83643B740 185 50332 00007FF8373A4D08
C##XYT INACTIVE
00007FF83850AD70 395 15275 00007FF8384087D0
C##XYT INACTIVE
如果仍有不明白,可以私信讨论
这个用户没了文章来源:https://www.toymoban.com/news/detail-630663.html
文章来源地址https://www.toymoban.com/news/detail-630663.html
到了这里,关于DROP USER c##xyt CASCADE > ORA-01940: 无法删除当前连接的用户的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!