萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> PL/SQL的異常處理機制的初步探討

PL/SQL的異常處理機制的初步探討

PL/SQL中如何在拋出異常後繼續

這個問題曾一度讓我郁悶,很有用的技巧!

SQL> declare
2 type testitb is table of number index by binary_integer;
a testitb;
b number;
3 4 5 begin
a(10):=11;
6 7 a(1):=12;
a(4):=4;
8 9
for i in a.first .. a.last loop
10 11 b:=i;
12 dbms_output.put_line('a='||a(i));
end loop;
13 14 EXCEPTION
WHEN NO_DATA_FOUND THEN
15 16 dbms_output.put_line('b='||b);
end;
17 18 /
a=12
b=2
這種情況下當a(2)的時候拋出NO_DATA_FOUND異常,整個block將會退出.修改一下exception的位置,把它 放在loop中.
declare
type testitb is table of number index by binary_integer;
a testitb;
b number;
begin
a(10):=11;
a(1):=12;
a(4):=4;
for i in a.first .. a.last loop
begin
b:=i;
dbms_output.put_line('a='||a(i));
EXCEPTION
WHEN NO_DATA_FOUND THEN
dbms_output.put_line('b='||b);
end;
end loop;
end;
/
a=12
b=2
b=3
a=4
b=5
b=6
b=7
b=8
b=9
a=11

PL/SQL procedure successfully completed.

采取這樣的方式就可以不影響整個pl/sql block了.

  • 共5頁:
  • 上一頁
  • 1
  • 2
  • 3
  • 4
  • 5
  • 下一頁
copyright © 萬盛學電腦網 all rights reserved