oracle中儲存過程的三種異常捕獲方式

2021-08-09 16:32:51 字數 1554 閱讀 5783

oracle中儲存過程的異常分為:

1.預定義異常:oracle已經定義了乙個常量用於表示異常編號

異常 錯誤編號 常量名稱

除數為0 -01476 zero_divide

案例:create

or replace procedure

test_asc

int;

begin

c:=10/0;

exception

when zero_divide then

dbms_output.put_line('除數不能為0哦');

end;

2.非預定義異常:錯誤編號沒有對應的常量

create

or replace procedure

test_asc

int;

my_error exception;

pragma exception_init(my_error,-01476);

begin

c:=10/0;

exception

when my_error then

dbms_output.put_line('除數不能為0哦');

when others then

dbms_output.put_line('未知錯誤');

end;

3.自定義異常

create

or replace procedure

move_moeny

( u1 int,

u2 int,

money_ dec

)isb

dec(19,2); --讀取u1餘額

my_error exception; --定義自定義異常

begin

--判斷轉賬的金額是否大於餘額

select a.balance into b from account_ a where a.aid=u1;

if bthen

raise my_error;

endif; --如果餘額大於轉賬金額,u1的餘額要減少

update account_ set balance = balance-money_ where aid=u1;

--u2的餘額要增加

update account_ set balance =balance+money_ where aid=u2;

--轉賬成功之後,要新增兩條交易記錄

insert into transfer values(x.nextval,sysdate,u1,'取出',money_);

insert into transfer values(x.nextval,sysdate,u2,'存入',money_);

exception

when my_error then

dbms_output.put_line('餘額不足');

rollback;

end;

Oracle中儲存過程

1 建立乙個儲存過程 create or replace procedure pro name parameter1 parameter2 is as begin plsql sentences pl sql語句,儲存過程功能實現的主體 exception dowith sentences 異常處理...

Oracle 中儲存過程的建立

在oracle 中用到的視覺化的開發工具是pl sql 其儲存過程也和在sql中的無二。今天也算是複習一下舊知識。是什麼?是乙個 集 也可以理解成是乙個程式塊。它在資料庫中來實現功能。為什麼用?1快 因為資料庫接收到從程式中傳過來的 語句,資料庫還要進行編譯成自己認識的語言 即程式每執行一次就編譯一...

scrapy框架中儲存資料的三種格式

在scrapy框架中儲存資料是在pipeline.py中儲存 切記需要注意在settings裡面設定pipleines的權重值 tem pipelines 1.儲存資料為文字格式 獲取當前工作目錄 class jsonpipeline object defprocess item self,item...