create or replace procedure p_tx_getfaxdata
( )as
v_errorcode number; -- 出錯的**
v_errormsg varchar2(200); -- 錯誤的訊息顯示
v_currentuser varchar2(8); -- 當前資料庫使用者
v_information varchar2(100); -- 關於錯誤的資訊
begin
//do the things you need to do.
commit;
--異常捕捉
exception
when others then
begin
v_errorcode := sqlcode;
v_errormsg := sqlerrm;
v_currentuser := user;
v_information := '遇到了錯誤 ' || to_char(sysdate) || ' 資料庫使用者 ' || v_currentuser;
dbms_output.put_line('執行錯誤,自動回滾');
dbms_output.put_line('詳細資訊:'||'錯誤**:'||v_errorcode||',錯誤訊息:'||v_errormsg||',日誌資訊:'||v_information);
rollback;
end;
end p_tx_getfaxdata;
Oracle儲存過程的異常處理
命名的系統異常 產生原因 access into null 未定義物件 case not found case中若未包含相應的when,並且沒有設定 collection is null 集合元素未初始化 curser already open 游標已經開啟 dup val on index 唯一索...
oracle 儲存過程 異常處理機制
下面將如何在儲存過程中判斷sql語句的錯誤,向大家作乙個詳細地介紹,希望大家讓程式開發人員遵從這樣的方式編寫sql儲存過程,以避免造成在程式聯調過程中應用程式狀態不明確的問題。如以下 表示,在sql儲存過程中可以定義執行狀態的出口引數,而且盡量返回系統報告的sqlcode,而並非個人定義的,這樣可以...
Oracle儲存過程中的異常處理
1.問題 oracle中可以用dbms output.put line來列印提示資訊,但是很容易緩衝區就溢位了。可以用dbms output.enable 1000000 來設定緩衝區的大小。但是有大小,就有可能再溢位 程式寫得太爛,錯誤不斷,不好意思 於是想把異常資訊寫到乙個表中。2.建表 這個容...