2
執行下面的PL/SQL塊:如何在獲取失敗的行後繼續使用oracle遊標?
declare
cursor c1 is
select rownum r1,
5/
case when r = 5 then 0 else 1 end
dzero, r from
(
SELECT RowNum r FROM dual CONNECT BY level <= 10
)
;
BEGIN
dbms_output.enable(buffer_size => NULL);
begin
FOR c1_rec in c1
LOOP
dbms_output.put_line('val: ' || c1_rec.r1);
END LOOP;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('Error: '||SQLCODE||' -ERROR- '||SQLERRM);
end;
END;
輸出是:
val: 1
val: 2
val: 3
val: 4
Error: -1476 -ERROR- ORA-01476: divisor is equal to zero
鑑於C1不變,如何使光標查詢繼續獲取6-10th行,因此輸出是否繼續顯示以下內容?
val: 6
val: 7
val: 8
val: 9
val: 10