簡體   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