国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

講解Oracle數據庫自定義異常的使用方法

瀏覽:31日期:2023-11-29 08:01:56
需求:業務邏輯在處理數據時,需要返回Message并阻止程序的繼續運行。但是,在存儲過程使用Oracle數據庫的Raise根本無法滿足現在的要求。

解決方法:

使用RAISE_APPLICATION_ERROR

RAISE_APPLICATION_ERROR ( error_number_in IN NUMBER, error_msg_in IN VARCHAR2);

error_number: 自定義的錯誤編號。

error_msg:自定義的錯誤內容。

在使用的過程中,你可能會遇到了下面的問題。

ORA-21000: error number argument to raise_application_error of [xxxx] is out of range

出現此錯誤的原因如下:

在存儲過程中定義的錯誤代碼Number其實并不在Oracle數據庫所允許的范圍之內。因為Oracle數據庫允許自定義的錯誤代碼的范圍是-20000 -- -20999

這樣,就在Java端可以通過SQLException來捕獲異常。

雖然通過SQLException.getMessage()可以捕獲到異常的內容,但是這些內容對于開發比較有用。對于客戶來說,并不友好,也沒有多大意義。

通過SQLException.getErrorCode()可以捕獲到自定義的異常錯誤編號。然后我們就可以通過這個錯誤編號,自定義相應的Message內容,返回給客戶。

下面我們來介紹另一種解決方法:

通過存儲過程返回值,你可以直接把錯誤Message定義在返回值中間。在Java端解析后,可以直接取得Message代碼。

示例如下:

If condition then

p_result := 'ERR:MSG2061';

end if;

if substr(p_result, 1, 3) = 'ERR' then

ROLLBACK;

else

p_result = 'OK';

end if;

Java:略去中間的調用存儲過程的步驟

if(result != null && result.startsWith('ERR:'))

// 從result中解析出Message_id,顯示Message到前臺

標簽: Oracle 數據庫
主站蜘蛛池模板: 国产伦精品一区二区三区无广告 | 日本午夜人成免费视频 | se94se欧美 | 成年人免费在线视频网站 | 亚洲成人手机在线观看 | 国产成人精品一区二区视频 | 国产乱淫a∨片免费视频 | 免费永久在线观看黄网 | 91精品国产高清91久久久久久 | 一区二区三区在线免费视频 | 国产成人免费高清视频网址 | 亚洲国产成人在人网站天堂 | 国产三级精品最新在线 | 欧美aaa视频 | 久久www免费人成看国产片 | 成人观看的视频三级 | 国产深夜福利视频观看 | a高清免费毛片久久 | 激情欧美日韩一区二区 | 国产精品黄在线观看免费 | 在线播放亚洲视频 | 午夜香港三级a三级三点 | 亚洲一区欧美一区 | 在线视频观看一区 | 久久久久久久久久久久久久久久久久 | 91欧洲在线视精品在亚洲 | 男人的天堂在线精品视频 | 亚洲精品久久一区毛片 | 最新亚洲精品国自产在线 | 一本色道久久综合亚洲精品加 | 国产欧美日韩视频在线观看一区二区 | 久久精品国产精品亚洲综合 | 伊人网在线免费视频 | 亚洲国产午夜看片 | 亚洲欧美成人影院 | 国产孕妇孕交一级毛片 | 国产在线观看精品香蕉v区 国产在线观看免费人成小说 | 京东一热本色道久久爱 | 久久大胆视频 | 亚洲欧美日韩另类在线 | 亚洲精品午夜在线观看 |