2010-07-27 27 views
0

我在oracle上運行大型查詢時出現此錯誤。有什麼建議? 我正在使用pl sql版本10.2ORA-07445訪問衝突

我注意到,錯誤是由於創建一個基於很多表的視圖,並且當我從這個視圖選擇一個具有where條件的特定參數時我得到了那個錯誤。當我檢查了日誌,我發現這個

ORA 07445訪問衝突

所以這是由於對某種看法。我對從中創建視圖的表格擁有完全的權利。而且我沒有使用任何網絡,數據庫在我的機器上。

謝謝。

+0

我正在使用oracle plsql並在Vista上遇到問題。 – Luci 2010-07-27 20:38:05

回答

2

從有用oerr命令:

$ oerr ora 3113 
03113, 00000, "end-of-file on communication channel" 
// *Cause: The connection between Client and Server process was broken. 
// *Action: There was a communication error that requires further investigation. 
//   First, check for network problems and review the SQL*Net setup. 
//   Also, look in the alert.log file for any errors. Finally, test to 
//   see whether the server process is dead and whether a trace file 
//   was generated at failure time. 

所以最有可能的原因:

  1. 您連接到崩潰的服務器進程。
  2. 網絡問題破壞了您的連接。
  3. 有人手動殺死了您連接的服務器上的進程。

當你連接的服務器進程崩潰時,它拋出了一個ORA-07445。這個錯誤與ORA-00600一起,是比較着名的Oracle錯誤。它們在功能上是未處理的異常,ORA-00600在Oracle代碼中是未處理的異常,而ORA-07445是來自操作系統的致命信號,通常是因爲Oracle做了一些操作系統不認可的操作,所以操作系統殺死了Oracle進程。

Oracle的支持站點(http://metalink.oracle.com)具有這些錯誤的聯機疑難解答 - 在metalink中搜索文檔600.1,並從日誌文件中輸入相應的信息,您可能會收到一些有用的疑難解答信息。

+0

請檢查我的描述,我更新了它。 – Luci 2010-07-28 08:17:53

2

這通常是在數據庫服務器操作系統級別殺死某些東西的時候。但這是一個相當普遍的錯誤。但在我的特定世界中,如果計算機B上的數據庫服務器已關閉,我將在計算機A上的應用程序服務器日誌中看到此情況。在你的情況下,你的桌面正在失去與你的DBMS的通信。如果某個管理員或自動化流程將您的查詢標識爲資源管理員(即您擁有笛卡爾產品),那麼您的「大型查詢」可能會在流程級別中喪生。

要清楚這很可能是你做錯了客戶端,而不是你的服務器或Oracle本身的錯誤。

UPDATE因爲您提供了更多詳細信息。由於數據庫在您的機器上運行,我敢打賭,您的查詢遇到缺少內存以支持客戶端和服務器操作。