ORACLE 異常處理問題處理

2021-08-14 13:12:38 字數 1118 閱讀 9839

create or replace procedure pro_people as

begin

select per_id into v_per_id from people where id=i_id;

exception

when no_data_found then

v_per_id := -1;

when others then

v_per_id := -1;

if v_per_id > -1 then

select count(1) into v_count from people where id=v_per_id;

if v_count < 1 then

insert into people(id,create_date) values (v_per_id,sysdate);

end if;

end if;

end;

上面的儲存過程,一旦捕獲以後之後,下面的語句將無法繼續執行,那麼真正的邏輯是需要執行的,修改後的寫法如下:

create or replace procedure pro_people as

begin

begin

select per_id into v_per_id from people where id=i_id;

exception

when no_data_found then

v_per_id := -1;

when others then

v_per_id := -1;

end;

if v_per_id > -1 then

select count(1) into v_count from people where id=v_per_id;

if v_count < 1 then

insert into people(id,create_date) values (v_per_id,sysdate);

end if;

end if;

end;

上面

紅色的部分加上就達到了預期,也就是說下面的if塊就可以執行了。

下標處理問題

下標處理問題 主要是針對於插入排序演算法寫的程式,其他情況可以借鑑這些思路。數學上或者通常意義上,下標都是從1開始的,但是在多數程式語言裡面陣列下標都是從0開始的,這就很惱火了,簡單乙個下標處理起來卻異常麻煩!請看 例如 1 典型的陣列下標越界問題 假設有個陣列 a 0 a 1 我們要用插入法排序,...

請求處理問題 收藏

問題描述 說有一台機器,上面有m個儲存空間。然後有n個請求,第i個請求計算時需要佔r i 個空間,儲存計算結果則需要佔據o i 個空間 其中 o i 題解 假設可以滿足所有請求,並且處理請求的順序是 r1,r2,r n 1 r n 那麼儲存完所有的請求結果後,剩餘的儲存空間為l m o i 如果假設...

應急處理問題思路

做資料庫時間長了,可能會經常去客戶那裡進行應急處理問題,特別是客戶急急忙忙的給你打 說資料庫執行很慢,甚至說資料庫無法使用了,讓你到客戶現場去解決問題,這個可能是大家最不想出現的,因為這個很急,到客戶現場需要趕緊解決問題,那麼如果你遇到了這個問題,也不要慌,還是按照自己的思路去解決,只不過要思路敏捷...