我在批量處理大量事務的生產中遇到oracle錯誤ORA-01001: invalid cursor
。然而,相同的代碼在開發中工作正常。ORA-01001:無效光標
我需要知道什麼時候可以在更新查詢中有ORA-01001: invalid cursor
。我做了一些谷歌搜索,發現有兩種可能性得到這個錯誤:
- 打開的遊標數量變得大於MAXCURSOR允許?
- 嘗試取出而不打開遊標。
有沒有人遇到過我上面描述過的同樣的問題?請建議解決方案。
我在批量處理大量事務的生產中遇到oracle錯誤ORA-01001: invalid cursor
。然而,相同的代碼在開發中工作正常。ORA-01001:無效光標
我需要知道什麼時候可以在更新查詢中有ORA-01001: invalid cursor
。我做了一些谷歌搜索,發現有兩種可能性得到這個錯誤:
有沒有人遇到過我上面描述過的同樣的問題?請建議解決方案。
是的,這些是常見原因(如果您還沒有,也請參閱this)。
考慮到您正在使用兩種不同的環境(dev/prod),您是否驗證過MAXCURSOR參數相同(或者Prod MAXCURSOR> Dev MAXCURSOR)?
您還應該調查您的批處理過程,看看數據數量是否會導致您的進程在prod中打開更多光標。例如:您的批次爲部門表中的每個部門代碼啓動存儲過程,並且此過程的每個實例都會打開N個遊標。
如果你有 - 說 - 3局。代碼在開發中,因爲它足夠用於測試,而在Prod中有34個部門代碼,您可以使用光標的10倍並獲得相同的情況...
@marino,MAXCURSOR在生產和開發環境中都是相同的 – 2010-03-05 09:12:19
數據是否也一樣?假設你沒有正確地釋放遊標,如果你在產品中完成了更多的「工作」,你會很快耗盡它們。 – 2010-03-05 09:54:06
Oracle會在什麼情況下針對不涉及遊標的選擇查詢引發此異常?當運行標準查詢時,Hibernate會在我的應用程序中拋出這個異常。 – 2010-11-17 21:52:26
什麼版本的Oracle? – DCookie 2010-03-05 16:20:30