Oracle SQLPlus 采取独占会话并且不允许从 .Net 应用程序运行更新语句

问题描述 投票:0回答:1

我通过

sqlplus
连接,如下所示:

sqlplus user/password@SID

我有一个 .NET 应用程序,它也使用相同的用户和密码连接到相同的数据库。但是一旦连接

sqlplus
,它就无法运行任何更新语句。

所以,下面的代码没有做任何事情。如果我使用断点检查它,它只会挂起并且控制不会返回到程序。

command.ExecuteNonQuery()

连接后

sqlplus
是否会进行独占会话?

c# .net oracle-database sqlplus
1个回答
0
投票

连接后sqlplus是否采取独占会话?

不可以,但是一个会话(不一定特定于 SQL*Plus)可能会锁定表中的行,而其他会话如果想要修改相同的行,则可以在等待锁释放时挂起。


例如,如果在 SQL*Plus 会话中更新了行,但没有进行更改,然后想要在 C# 会话中更新相同的行,则该会话可能正在等待该行上的锁被释放。由 SQL*Plus 完成其事务而释放。

 

COMMIT

COMMIT
在 SQL*Plus 会话中进行更改,然后 C# 会话应该停止挂起。
    

© www.soinside.com 2019 - 2024. All rights reserved.