You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLPlus连接后是否占用独占会话导致.NET应用无法执行更新?

问题解答

sqlplus默认不会占用独占会话,同一数据库用户可以同时建立多个并发连接。你的.NET应用执行command.ExecuteNonQuery()时挂起,核心原因大概率是锁冲突,而非sqlplus连接本身的独占限制。

可能的触发场景及解决方向:

  • sqlplus会话中执行了UPDATE/INSERT/DELETE这类DML语句,但未执行COMMIT或ROLLBACK,此时相关表或行被加上排他锁,.NET应用的更新请求会被阻塞,直到锁被释放。
  • 排查sqlplus的未提交事务:在sqlplus中执行SELECT * FROM V$TRANSACTION;,如果返回结果,说明存在未结束的事务,执行COMMIT或者ROLLBACK后再测试.NET应用。
  • 确认.NET应用的更新语句是否和sqlplus中未提交的操作涉及相同的表或行,这是锁冲突的直接触发点。
  • 查询数据库阻塞状态:执行SELECT blocking_session, sid, serial#, sql_id FROM V$SESSION WHERE blocking_session IS NOT NULL;,找到阻塞源会话后,要么让该会话提交/回滚,要么谨慎终止阻塞会话。

内容的提问来源于stack exchange,提问作者Frank Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 21:02:32