游標的問題

2021-08-29 05:45:55 字數 587 閱讀 5764

:d :d

public collection getresult(string sql) throws exception, sqlexception,

parameterexception, recordnotfoundexception catch (sqlexception sqle) finally catch (exception e) }}

前一段時間做專案,完成後交付使用者測試使用,結果使用者反饋系統在使用一段時間就報錯,之後就不能使用了。是什麼樣的問題呢?於是按照使用者所說的情況,進行測試結果也沒有發現什麼問題啊(因為我使用異常統一處理),最後將使用者發回的日誌仔細觀察,才現是由於游標溢位引起的。再仔細察看**,我的游標關閉了。由於比較忙,此問題就先放下來了。那天寫** 偶然發現上面的**,終於找到原因了,原來如果在執行sql時候出錯,那麼系統異常會**捉到並丟擲throw sqle,最後執行關閉rs與pstmt,不仔細看還真的以為萬事大吉,再仔細想:執行sql時候出錯rs還能關嗎!關閉肯定會引起異常,因為這個時候的rs的值為null ,所以到這一步會跳出並引發exception 異常,所以pstmt.close()這句就不再執行嘍!也就是游標沒有關閉,所以接下來會引發游標溢位問題。

Oracle游標的問題

游標 cursor 是oracle系統在記憶體中開闢的乙個工作區,在其中存放select語句返回的查詢集 他是乙個查詢結果集,相當於快取 游標內有指標 在游標所定義的工作區中,存在著乙個指標 pointer 在初始狀態它指向查詢結果的首記錄。當指標放置到某行後,即可對該行資料進行操作。對游標的操作有...

Cursor游標(游標)的使用

為了處理sql語句,oracle 將在記憶體中分配乙個區域,這就是上下文區。這個區包含了已經處理完的行數 指向被分析語句的指標,整個區是查詢語句返回的資料行集。游標就是指向上下文區控制代碼或指標。兩種游標 一 顯示游標 需要明確定義!顯示游標被用於處理返回多行資料的select 語句,游標名通過cu...

游標的使用

declare sql varchar 8000 password varchar 200 密碼 tbname varchar 500 資料庫.dbo.表名,如果不指定 dbo.表名,則匯出資料庫的所有使用者表 filename varchar 1000 匯入 匯出路徑 檔名,如果 tbname引數...