oracle 迴圈內部,異常處理

2021-07-12 01:52:55 字數 2412 閱讀 2290

寫指令碼的時候碰到了

經查是因為v_row沒有資料。

所以要加入異常處理,但是在迴圈內加入異常也有錯誤。

exception是在end前就有效,不能再迴圈內(不知道為什麼),所以多加乙個begin end.

declare

o_name varchar2(200);

o_code varchar2(50);

begin

for v_row in (select /+ parallel(4) / r.id,r.orig_org_code

from stl.t_stl_bill_receivable r

where r.express_dest_org_code is not null

and r.express_orig_org_code is null

and r.product_code in (『package』,』rcp』,』epep』,』deap』)

and r.business_date < sysdate) loop

begin

select

t.part_code as part_code,

o.name as part_name

into o_code,o_name

from bse.t_bas_express_part_sales_dept t,bse.t_bas_org o,bse.t_bas_sales_department sd

where t.part_code = o.code

and t.sales_dept_code = sd.code

and sd.active = 『y』

and o.active = 『y』

and t.active = 『y』

–and t.part_code = #

and t.sales_dept_code = v_row.orig_org_code;

update stl.t_stl_bill_receivable r set r.express_orig_org_code = o_code,r.express_orig_org_name = o_name

where r.id = v_row.id;

commit;

exception

when others then

rollback;–dbms_output.put_line(v_row.id);

end;

end loop;

end;

ORACLE 異常處理

一 開發pl sql程式時,需要考慮到程式執行時可能出現的各種異常,當異常出現時,或是中斷程式執行,或是使程式從錯誤中恢復,從而繼續執行。常用的異常型別有 no data found 沒有發現資料 too many rows select into 語句查詢結果有多個資料行 others 可以捕捉所...

Oracle 異常處理

1 什麼是異常 在pl sql 中的乙個警告或錯誤的情形都可被稱為異常。包括編譯時錯誤 pls 和執行時錯誤 ora 乙個異常通常包含乙個錯誤 和錯誤文字,分別指示異常的編號和具體錯誤資訊。異常情況處理 exception 是用來處理正常執行過程中未預料的事件,程式塊的異常處理預定義的錯誤和自定義錯...

Oracle 異常處理

異常處理 處理程式不可意料的操作,防止程式崩潰,起到友好提示 語法 exception when 異常型別 then 異常處理 異常型別 處理相關的異常 others 處理所有的異常 no data found 沒有找到資料 too many rows 返回資料行數過多自定義異常 實行彈窗的方式提示...