![](/img/trans.png)
[英]How to Handle NullpointerException when Query throws Exception?
[英]How to handle cursor if it throws exception in EJBs
我有一個callableStatment,執行后出現以下錯誤
try{
callableStatement.executeQuery()
}
catch (Throwable t) {
throw new Exception(t);
}
finally {
closeResultSet(rs);
closeCallableStatement(callableStatement);
closeConnection(dbConnection);
}
javax.ejb.EJBTransactionRolledbackException: ORA-30926: unable to get a stable set of rows in the source tables
一段時間后,我收到“ Too man open cursors”的數據庫錯誤
我知道該程序由於重復而引發錯誤,我想知道為什么游標沒有關閉,因為似乎塊最終無法滿足我的需要,並且關閉它們的正確方法是什么
executeQuery()的返回類型是尚未指定的ResultSet。 嘗試給它
ResultSet rst = callableStatement.executeQuery();
希望能有所幫助。 :)
我認為您正在執行合並查詢,並且返回了1個以上的行ID。 這就是該例外的原因。 同樣,當返回第一個重復行時,本身也會引發異常。 在執行查詢之前,您正在嘗試關閉它。 這應該是游標無法正確關閉的原因。 嘗試在查詢中添加一個獨特的關鍵字以避免重復。 例如:合並到table_1中(在table_1 a,table_2 b,table_3 c WHERE中使用SELECT(選擇不同的ta.ROWID row_id))src ON(a.ROWID = src.row_id)匹配時;由於涉及回滾,因此在系統異常。 並且應用程序異常不會回滾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.