Вывести на экран числа от 1 до 100, делящихся на 3 без остатка. Не использовать функцию MOD.
Первый вариант
BEGIN <<I>> FOR I IN 1 .. 100 LOOP IF LENGTH(I / 3) <= 2 THEN DBMS_OUTPUT.put_line(TO_CHAR(I)); END IF; END LOOP I; END; /
Второй вариант
DECLARE X PLS_INTEGER; I PLS_INTEGER := 0; BEGIN WHILE (I <= 100) LOOP BEGIN I := I + 1; SELECT LENGTH(I / 3) INTO X FROM DUAL; IF X <= 2 THEN DBMS_OUTPUT.put_line(TO_CHAR(I)); END IF; END; END LOOP; END; /
Третий вариант
DECLARE X PLS_INTEGER; BEGIN FOR I IN 1 .. 100 LOOP BEGIN SELECT LENGTH(I / 3) INTO X FROM DUAL; IF X <= 2 THEN DBMS_OUTPUT.put_line(TO_CHAR(I)); END IF; END; END LOOP I; END; /