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.