sqlcode與sqlerrm的區別

2022-08-23 04:03:17 字數 1103 閱讀 2100

sqlcode:是資料庫操作的返回碼,其中0--成功;-1--失敗;100--沒有檢索到資料。

sqlerrm:是數返回指定錯誤**的錯誤資訊。

在乙個內在的異常中,sqlcode返回oracle錯誤的序號,而sqlerrm返回的是相應的錯誤訊息,錯誤訊息首先顯示的是錯誤**。

sqlcode返回的是負數,除非oracle的錯誤為「ora-01403:no data found」(譯:ora-01403:未找到資料),

當oracle錯誤為「ora-01403:no data found」時,其對應的sqlcode為+100。

對於使用者自定義的異常,sqlcode返回的是+1,而sqlerrm返回的是user-defined exception。

乙個oracle的錯誤訊息最多只能包含512個位元組的錯誤**。

如果沒有異常被觸發,則sqlcode返回0,sqlerrm返回「ora-0000:normal, successful completion」。

sqlerrm如何使用?

sqlcode和sqlerrm是不能直接在sql語句中使用,必須先將其賦給變數後,才能在sql語句中使用,如下:

declare 

v_ename emp.ename%type;

e_norecord exception;

pragma exception_init (e_norecord, -20001);

err_num number;

err_msg varchar2(100);

begin

select ename into v_ename from emp where empno=3000;

exception

when others then

err_num := sqlcode;

err_msg := substr(sqlerrm, 1, 100);

dbms_output.put_line(err_num||'----'||err_msg);

end;

執行結果:

anonymous block completed

100----ora-01403: no data found

彙總 SQL CODE 經典 精彩

彙總 sql code 經典 精彩 資料操作類 sqlhelper.cs 無限級分類 儲存過程 百萬級分頁儲存 sql經典短小 收集 學生表 課程表 成績表 教師表 50個常用sql語句 sql server 與access excel的資料轉換 游標 根據不同的條件查詢不同的表 inner joi...

彙總 SQL CODE 經典 精彩

彙總 sql code 經典 精彩 資料操作類 sqlhelper.cs 無限級分類 儲存過程 百萬級分頁儲存 sql經典短小 收集 學生表 課程表 成績表 教師表 50個常用sql語句 sql server 與access excel的資料轉換 游標 根據不同的條件查詢不同的表 inner joi...

彙總 SQL CODE 經典 精彩

資料操作類 sqlhelper.cs 無限級分類 儲存過程 百萬級分頁儲存 sql經典短小 收集 學生表 課程表 成績表 教師表 50個常用sql語句 sql server 與access excel的資料轉換 游標 根據不同的條件查詢不同的表 sql查詢優化 索引優化 master.dbo.spt...