繁体   English   中英

如何使用C#从Oracle数据库检索大数据?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM