[英]How to retrieve large data from Oracle database using C#?
我正在尝试从.NET中的Oracle数据库检索大量数据。 我正在使用.NET DBDataReader
,它可以处理少量数据,但是当数据变大或变大时它将停止运行,我也不知道为什么。 我如何检索大量数据?
您应该尝试使用ODP.NET 。 那是为.NET编写的Oracle数据提供程序,为与Oracle数据库的通信进行了更好的优化。
Microsoft不推荐使用Oracle Client(System.Data.OracleClient)( http://blogs.msdn.com/adonet/archive/2009/06/15/system-data-oracleclient-update.aspx ),建议使用第三手工具。
编辑:
Maby您应该看看这个类似的问题和答案: .Net中Oracle DataReader的重大性能问题
好的,由于您希望获得与问题相关的答案的信息很少,因此回答这些问题将有助于其他人回答您的问题:
1-您在数据库中的数据类型是什么
2-您如何尝试获取数据(某些代码会很有帮助)
3-是否有索引,表有多大,查询有多复杂,您是否尝试过对其进行优化? 尝试编写查询。
...
好的,这是您可以尝试告诉我们的内容是否有所改变的方法...
static void DownloadBlob(OracleConnection myConnection)
{
OracleCommand myCommand = new OracleCommand("SELECT * FROM table", myConnection);
myConnection.Open();
OracleDataReader myReader = myCommand.ExecuteReader(System.Data.CommandBehavior.Default);
try
{
while (myReader.Read())
{
//Obtain OracleLob directly from OracleDataReader
OracleLob myLob = myReader.GetOracleLob(myReader.GetOrdinal("Ordinal"));
if (!myLob.IsNull)
{
// I hope it is BLOB :)
}
}
}
finally
{
myReader.Close();
myConnection.Close();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.