儲存過程涉及的異常

2021-09-02 01:11:59 字數 1219 閱讀 3900

命名的系統異常               產生原因

access_into_null           未定義物件

case_not_found              case中若未包含相應的when,並且沒有設定else時

collection_is_null           集合元素未初始化

curser_alreday_open          游標已經開啟

dup_val_no_index              唯一索引對應的列上有重複的列

invalid_cuser               在不合法的游標上操作

invalid_number               內嵌的sql語句不能將字元轉換為數字

no_data_found               使用select into 未返回行,或應用索引表未初始化

too_many_rows                執行select into 時,結果集超過一行

zero_divide                  除數為0

subscript_beyond_count          元素下標超過巢狀表或varray的最大值

subscript_outside_limit          使用巢狀表或varray時,將下標指定為負數

value_error               賦值時,變數長度不足以容納實際數量

login_denied               pl/sql應用程式連線到oracle資料庫時,提供了不正確的使用者名稱和密碼

no_logged_on                 pl/sql應用程式在沒有連線oracle資料庫的情況下訪問資料 

program_error              pl/sql內部問題,可能需要重灌資料字典& pl/sql系統包

rowtype_mismatch             宿主游標變數與pl/sql游標變數的返回型別不相容

self_is_null                 使用物件型別時,在null物件上呼叫物件方法

storage_error                執行pl/sql時,超出記憶體空間

sys_invalid_id              無效的rowid字串

timeout_on_resource             oracle在等待資源時超時

儲存過程常見異常

access into null 未定義物件 case not found case 中若未包含相應的 when 並且沒有設定 else 時 collection is null 集合元素未初始化 curser already open 游標已經開啟 dup val on index 唯一索引對應的...

儲存過程捕捉異常

begin try 開始捕捉異常 begin transaction 開始事務 exec procname procparam 執行儲存過程 報錯,則錯誤資訊會 捉 commit 提交事務 endtry 結束捕捉異常 begin catch 有異常 獲 if trancount 0 判斷有沒有事務 ...

PLSQL儲存過程呼叫儲存過程對異常的處理問題

開始 如果對異常處理不正確,有可能會導致意想不到的結果。下面這個就是 先寫兩個儲存過程 test01 和 test02 create orreplace procedure test01 is v id emp.empno type begin update emp set ename test01...