注意:普通的查詢語句不會出現(xiàn)異常,只有使用into對變量進(jìn)行賦值的時候才會發(fā)生異常
--系統(tǒng)變量: notfound --> if sql%notfund then 如果這個表達(dá)式為真,則 (增刪改)出錯 --,先自定義一個異常:no_result exception -- if sql%nofund then --excetpion --when no_result then --dbms……
用戶自定義異常寫在:declare里,如:
set serveroutput on declare no_result exception; --自定義異常 v_ssid student_test.sid%type;
begin update student_test set sex='男' where sid=1000002; --沒有異常,報(bào)(自定義異常)插入為空的錯誤 if SQL%NOTFOUND then RAISE no_result; end if; exception when no_result then dbms_output.put_line('修改有誤!'); when dup_val_on_index then dbms_output.put_line('系統(tǒng)異常,違反主鍵約束'); end;
如果修改語句修改為空,系統(tǒng)不會報(bào)錯,但會直接進(jìn)入用戶自己定義的no_result異常里,
if SQL%NOTFOUND then RAISE no_result; end if;
SQL%NOTFOUND是檢查更新語句是否更新成功,如果更新失敗,則notfound語句為真,
則使用raise語句跳轉(zhuǎn)到no_result異常執(zhí)行。
(dup_val_on_index)異常是系統(tǒng)異常,如果使用插入語句并且違反主鍵唯一性約束,則執(zhí)行dup_val_on_index異常。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
標(biāo)簽:焦作 柳州 泰安 銀川 梧州 河源 南陽 酒泉
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Oracle用戶自定義異常實(shí)現(xiàn)過程解析》,本文關(guān)鍵詞 Oracle,用戶,自定義,異常,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。