Skip to main content
 首页 » 编程设计

c#之是否可以使用 ADO.NET 锁定 oracle 10g 数据库表

2024年02月24日34sky-heaven

我有一个表,其中包含需要由多个程序获取和设置的最大值。当获取旧值并在 C# 中更新新值时,如何锁定表一段时间?换句话说:

string sql = "lock table MaxValueTable in exclusive mode";   
using (DbCommand cmd = cnctn.CreateCommand()) 
{ 
    cmd.CommandText = sql; 
    // execute command somehow!! 
} 
 
maxValue = GetMaxValue(); 
SetMaxValue(maxValue + X); 
 
sql = "lock table MaxValueTable in share mode";   
using (DbCommand cmd = cnctn.CreateCommand()) 
{ 
    cmd.CommandText = sql; 
    // execute command somehow!! 
} 

请您参考如下方法:

Oracle 可以处理locking本身。尽量使用数据库特性。

Sequence上面的评论会告诉您,是 Oracle 中的首选方式。