ODP.NET Реализовать курсор для оператора SELECT
Как я могу реализовать простую выборку курсора на базовом SELECT statement like 'SELECT * FROM Employees'
используя ODP.NET?
1 ответ
Решение
Так что это довольно просто.
Сначала создать OracleConnection
класс как это
OracleConnection con = new OracleConnection(ConfigurationManager.ConnectionStrings["connectionstring"].ConnectionString);
con.Open(); //opens connection
Затем вы определяете и OracleCommand
экземпляр вначале путем передачи необработанного запроса / хранимой процедуры в качестве первого аргумента, например
Так что в вашем конкретном случае это будет OracleCommand cmd = new OracleCommand("SELECT * FROM Employees", con
if (con.State == ConnectionState.Open)
{
using (OracleCommand cmd = new OracleCommand(<query>/<stored proc>, con))
{
cmd.CommandType = CommandType.StoredProcedure; //in case of stored proc
cmd.BindByName = true;
OracleDataReader reader;
try
{
reader = cmd.ExecuteReader();
while(reader.Read())
{
Console.WriteLine("field: {0}", reader.GetDecimal(0));
}
}
catch (OracleException e)
{
foreach (OracleError err in e.Errors)
{
//print errors
}
}
con.Close();
con.Dispose();
}
}
Вот пример http://www.oracle.com/technetwork/articles/dotnet/williams-refcursors-092375.html