我們有一個程序處理數據庫中的大量記錄。現在有時候,如果過程耗時過長,用戶會手動取消該過程,從而拋出ORA-01013 EXCEPTION。但是,我們仍然想知道在取消過程之前處理了多少記錄。 我們嘗試生成在EXCEPTION WHEN OTHERS
塊中調用的日誌,但該塊中的任何代碼似乎都不起作用。我們甚至嘗試通過PRAGMA INIT EXCEPTION
爲ORA-01013提出異常,但無濟於事。該代碼似乎達到了例外,但不執行任何代碼。我猜測,由於程序被取消,EXCEPTION塊中的代碼沒有時間做任何事情,只是關閉。當用戶取消程序時出現異常ORA-01013
任何想法如何獲得在程序被取消之前處理的記錄數?我可以嘗試增加記錄每次發生commit
,但想知道是否有更好的方法來實現這個
其實我們使用的是UTL_FILE包來準備日誌文件。由於某些原因,雖然EXCEPTION塊內的代碼沒有得到執行。我會嘗試你的另一種方法,看看是否有幫助。非常感謝 – Eosphorus 2012-03-14 17:24:02
補充說明。 EXCEPTION塊內唯一的代碼是對UTL_FILE包的調用,它寫入一條日誌,說明處理了多少行 – Eosphorus 2012-03-14 17:27:57
@Eosphorus,如果您發佈了您的過程代碼,我將查看並嘗試找出爲什麼EXCEPTION部分似乎沒有執行。 – Ollie 2012-03-15 08:15:35