CREATETABLE AREAS ( RADIUS NUMBER(5), AREA NUMBER(14,2) ).
方法一:使用 goto
DECLARE pi CONSTANT NUMBER (9, 7) :=3.1415927. radius INTEGER (5). area NUMBER (14, 2). BEGIN radius :=0.
LOOP
<<here>> radius := radius 1.
IF radius =4 THEN GOTO here. ELSE area :=pi*POWER (radius, 2).
INSERTINTO areas VALUES (radius, area).
EXITWHEN area >100. ENDIF. END LOOP.
COMMIT. EXCEPTION WHEN OTHERS THEN ROLLBACK. RAISE. END.
-- 方法二:使用 exception
-- 利用系统 exception DECLARE pi CONSTANT NUMBER (9, 7) :=3.1415927. radius INTEGER (5). area NUMBER (14, 2). some_variable NUMBER (14, 2). BEGIN radius :=0.
LOOP BEGIN radius := radius 1. some_variable :=1/ (radius -4). area := pi * POWER (radius, 2).
INSERT INTO areas VALUES (radius, area).
EXIT WHEN area >100. EXCEPTION WHEN ZERO_DIVIDE THEN NULL. END. END LOOP.
COMMIT. EXCEPTION WHEN OTHERS THEN ROLLBACK. RAISE. END.