前言

有时候,我们想删除某个oracle用户

当执行 drop user jeecg_test cascade; 的时候,出现:ORA-01940:无法删除当前连接的用户

有人正在连接,这样就不爽了!

解决方式:查出有哪些人在连接oracle数据库,然后杀掉连接程序

step1:查询出所有用户占用的程序:

select username,sid,serial# from v$session where username = 'JEECG_TEST';

得到以下结果:

如何断开所有连接oracle的用户--解决ORA-01940:无法删除当前连接的用户_sql语句

step2:杀掉连接程序

执行如下sql语句,其中单引号里面的就是SID、serial:

alter system kill session '6,12';  
alter system kill session '63,19';
alter system kill session '67,2';
alter system kill session '132,1';
alter system kill session '192,9';

扩展

上面的这些alter语句可以用 || 连接符生成,然后复制执行就可以啦!

SQL语句如下:

select 'alter system kill session '''||sid||','||serial#||''';' from v$session where username = 'JEECG_TEST';

如何断开所有连接oracle的用户--解决ORA-01940:无法删除当前连接的用户_公众号_02

详见: SQL语句里使用||连接符

OK, GAME OVER !

更多内容,请关注公众号:​程序员高手之路

在公众号回复:​Oracle资源​   即可免费获取Oracle视频教程!

如何断开所有连接oracle的用户--解决ORA-01940:无法删除当前连接的用户_ora-01940_03

如何断开所有连接oracle的用户--解决ORA-01940:无法删除当前连接的用户_oracle_04