说我有以下query
private void updateusers()
{
List<int> listRecords=new List<int>();
string strQuery="select * from table where role='Admin' and logged_in<=sysdate-1";
OracleCommand com=new OracleCommand(strQuery,objConnection);
OracleDataReader reader=com.ExecuteReader();
if(reader.HasRows)
{
while(reader.read())
{
listRecords.Add(int.Parse(reader["Row_ID"].toString()));
}
int i=0;
foreach(int row in listRecords)
{
try
{
OracleCommand command=new OracleCommand();
command.Connection=objConnection;
command.CommandText="Update table set Status='Y' where Row_ID="+listRecords[i];
command.CommandType=System.Data.CommandType.Text;
command.ExecuteNonQuery();
}
catch(OracleException ex)
{
//log the exception
}
}
}
}
现在我的问题是,让我们假设选择查询获取2000条记录,foreach
并将继续更新每条记录,record
并假设在第 500条数据库连接丢失record
或说数据库由于某种原因已关闭。现在在这些情况下,我想迭代或尝试更新相同的记录 3 次,如果它第三次失败,退出并停止执行剩余1500 条记录的命令。foreach-loop
update
那么有没有什么特别的方法可以识别这些类型的 Oracle 异常,或者更好地说是环境异常?是否 为这些类型的例外
OracleException
提供任何特殊信息?messageCode