我们客户的 Oracle 数据库位于远程,我通过 VPN 连接到它。我已经安装了所有用于连接到 Oracle DB 的软件(Oracle 客户端、Oracle 的 .Net 客户端等),我可以在应用程序的其他部分连接/使用数据库。所以这不是问题。
在这种情况下,我将数据加载到 DataTable 中。我使用以下函数,当查询返回 3-4k 记录时,它将数据加载到 DataTable 中。这需要几秒钟,但它有效。
我调用的用于执行 Sql 查询和检索 DataTable 的函数是
/// <summary>Returns a DataTable based on input query</summary>
/// <param name="sqlString">sql to execute</param>
/// <returns>returns DataTable</returns>
public DataTable ExecuteDataTable(String sqlString)
{
OpenConnection();
DataTable tbl = new DataTable();
_oracleCommand.CommandText = sqlString;
try
{
using (OracleDataAdapter dbAdapter = new OracleDataAdapter(_oracleCommand))
dbAdapter.Fill(tbl);
}
catch (OracleException ex)
{
CloseConnection();
throw new Exception(sqlString, ex);
}
finally
{
CloseConnection();
}
return tbl;
}
但是当我尝试将数据加载到一个巨大的 DataTable 中时,它有点卡住了。要加载的记录大约为 140k,并且可以更多。查询不会返回任何内容。我等了大约 15-20 分钟的结果,但没有任何结果。它也不会抛出任何错误。
该程序只是停留在下一行。
dbAdapter.Fill(tbl);
有什么想法为什么?
问候, 阿米尔