関数で毎秒同じクエリを実行する必要がありますGetStuff
が、1、2 分後に Oracle が ORA-00604 をスローしてカーソルが不足すると、結果を返した後に開いているカーソルを何らかの形で閉じる必要があると思います。ただし、クエリが必要になるたびに再接続するという考えは好きではありません。私のコードは次のとおりです。
public MyStuff GetStuff(string paramValue)
{
OracleCommand command = connection.CreateCommand();
command.CommandText = "select XXX from YY where param = ? ";
command.Parameters.Add(":param ", OracleDbType.Varchar2).Value = paramValue;
IDataReader reader = command.ExecuteReader();
while (reader.Read())
{
...
}
command.Dispose();
return stuff;
}