Oracle 預定義錯誤

2021-09-30 15:52:29 字數 1431 閱讀 9703

begin

dbms_output.put_line(sqlerrm(-00001));

end;

ora-00001: 違反唯一約束條件 (.)

ora-00051: 等待資源超時

ora-00061: 另乙個例程設定了不同的 dml_locks

ora-00900: 無效 sql 語句

ora-01001: 無效的游標

ora-01012: 沒有登入

ora-01017: 無效的使用者名稱/口令;拒絕登入

ora-01403: 未找到資料

ora-01422: 實際返回的行數超出請求的行數

ora-01426: 數字溢位

ora-01476: 除數為 0

ora-01722: 無效數字

ora-06500: pl/sql: 儲存錯誤

ora-06501: pl/sql: 程式錯誤

ora-06502: pl/sql: 數字或值錯誤

ora-06504: pl/sql: 結果集變數或查詢的返回型別不匹配

ora-06511: pl/sql: 游標已經開啟

ora-06530: 引用未初始化的組合

ora-06531: 引用未初始化的收集

ora-06532: 下標超出限制

ora-06533: 下標超出數量

ora-06575: 程式包或函式  處於無效狀態

1.sqlcode 用於返回錯誤號

2.sqlerrm 用於返回錯誤訊息 e.g exec dbms_output.put_line(sqlerrm(-00001))

這兩個函式在例外處理部分的when others子句後引用這兩個函式,可以獲取oracle的錯誤號,錯誤訊息.

該過程用於在pl/sql中自定義錯誤小,他必須在資料庫端的子程式(過程,函式,包,觸發器)中使用,不能在匿名塊呵客戶端子程式中使用,語法:

其中error_number 用於定義錯誤號,該錯誤號必須在-20000到-20999之間;

message      用於指定錯誤號訊息,長度小於2048位元組

第三個引數可選

true         該錯誤會被放到先前錯誤堆疊中

false        會替換先前所有錯誤--用一迴圈列印所有oracle錯誤

declare

v_int integer:=1;

--語句塊開始

begin

--迴圈開始

for v_int in 1..1000 loop

begin

--螢幕輸出

if length(sqlerrm(-v_int))<=61 then

dbms_output.put_line(sqlerrm(-v_int));

end if;

end;

end loop;

end;

ORACLE預定義異常

start 命名的系統異常 產生原因 access into null 未定義物件 case not found case 中若未包含相應的 when 並且沒有設定 else 時 collection is null 集合元素未初始化 curser already open 游標已經開啟 dup v...

ORACLE預定義角色

oracle預定義角色 即便有了角色,那麼如果是一新的資料庫,而且有想急著使用,分別建立角色再授予許可權是一件 非常麻煩的事情,所有為了方便使用,可以使用一些預定義的角色。oracle提供了兩個主要的預設角色 connect resource 範例 檢視connect和resource所具備的許可權...

oracle 預定義異常

1,access into null 沒有初始化物件異常 create type emp type as object id number 10 物件 建立 name varchar2 50 declare emp emp type emp type 1,begin emp.name 王瑤 exce...