Я использую Oracle Exadata в качестве базы данных и использую его в веб-приложении ASP.NET C #.Я пытаюсь запросить данные из базы данных и получить данные в таблице данных.Данные слишком велики, так как я использую опцию select *.Ошибка в таблице данных из-за проблем с памятью, а также неправильный подход.
Я пытаюсь проверить, можно ли применить модель подкачки.
Я использовал приведенную ниже модель кода с MS SQL, которая работает.Я не уверен, как это можно применить в запросе Oracle.Ниже приведен код для MS SQL.
public List<DataTable> GetDataSet()
{
var dataTables = new List<DataTable>();
var totalRecords = 0;
var tableIndex = 1;
using (var cn = new SqlConnection {ConnectionString = ConnectionString})
{
using (var cmd = new SqlCommand {Connection = cn})
{
var selectStatement =
@"SELECT Cust.CustomerIdentifier,
Cust.CompanyName,
Cust.ContactName,
C.[Name] AS Country
FROM dbo.Customers AS Cust
INNER JOIN dbo.Countries AS C
ON Cust.CountryIdentifier = C.CountryIdentifier
ORDER BY Cust.CustomerIdentifier
OFFSET @Offset ROWS
FETCH NEXT 25 ROWS ONLY;";
var countStatement = "SELECT COUNT(Cust.CustomerIdentifier) FROM dbo.Customers AS Cust";
cmd.CommandText = countStatement;
cn.Open();
totalRecords = Convert.ToInt32(cmd.ExecuteScalar());
cmd.CommandText = selectStatement;
cmd.Parameters.Add("@OffSet", SqlDbType.Int);
for (var index = 0; index < totalRecords; index++)
{
if (index % 25 == 0)
{
cmd.Parameters["@OffSet"].Value = index;
var dt = new DataTable() {TableName = $"Table{tableIndex}"};
dt.Load(cmd.ExecuteReader());
dataTables.Add(dt);
tableIndex += 1;
}
}
}
}
return dataTables;
}
Я пытаюсь достичь той же функциональности с Oracle.Как запросить Oracle, чтобы получить данные таким же образом.Спасибо