之前寫儲存過程時,異常處理寫法是:
… exception
when others then
rollback;
end …
這種寫法當儲存過程丟擲異常時,我們不知道其到底丟擲了哪種異常(比如列寬度不夠大而在插入資料時拋異常),可以按如下方式顯示異常資訊
exception
when others then
dbms_output.put_line(『sqlcode : 』 ||sqlcode);
dbms_output.put_line(『sqlerrm : 』 ||sqlerrm);
rollback;
end …
sqlcode是異常編號,sqlerrm是異常的詳細資訊,如果異常資訊太多,可以擷取一段顯示,如
dbms_output.put_line(『sqlerrm : 』 ||substr(sqlerrm,1,100));是擷取前100個字元顯示出來。
ORACLE儲存過程異常處理。
create or replace procedure p tx getfaxdata as v errorcode number 出錯的 v errormsg varchar2 200 錯誤的訊息顯示 v currentuser varchar2 8 當前資料庫使用者 v information ...
Oracle 儲存過程 捕獲異常
1 帶引數插入並帶返回值,異常資訊 create orreplace procedure test pro v id in int,v name in in 是輸入引數 out 輸出引數 isbegin insert into proc test id,name values v id,v name...
Oracle儲存過程的異常處理
命名的系統異常 產生原因 access into null 未定義物件 case not found case中若未包含相應的when,並且沒有設定 collection is null 集合元素未初始化 curser already open 游標已經開啟 dup val on index 唯一索...