var totalNumRowsParam = new OracleParameter("total_num_rows", OracleType.Int32) { Direction = ParameterDirection.Output };
var resultsParam = new OracleParameter("results", OracleType.Cursor) { Direction = ParameterDirection.Output };
var temp = new List<Blah>();
using (var conn = new OracleConnection(connectionString))
{
conn.Open();
using (var command = conn.CreateCommand())
{
command.CommandType = CommandType.StoredProcedure;
command.CommandText = "blah_search";
command.Parameters.Add(new OracleParameter("start_index", (object)0));
command.Parameters.Add(new OracleParameter("num_rows", (object)100000));
command.Parameters.Add(totalNumRowsParam);
command.Parameters.Add(resultsParam);
command.Parameters.Add(new OracleParameter("results1", OracleType.Cursor) { Direction = ParameterDirection.Output });
OracleString s;
command.ExecuteOracleNonQuery(out s);
using(var reader = (OracleDataReader)resultsParam.Value)
{
while (reader.Read())
{
var item = new Blah();
temp.Add(item);
item.Name = (string)reader["name"]; // ...
}
}
}
}