循环语句 sql求思路

求1到100的质数 只能用whlie 循环语句 oracle sql 怎么写

DECLARE
I NUMBER:=1;
J NUMBER := 1;
BEGIN
WHILE I<=100 LOOP
J := 1;
WHILE J < I LOOP
J := J + 1;
IF J = I THEN
DBMS_OUTPUT.PUT_LINE(I);
END IF;
IF MOD(I, J) = 0 THEN
--如果出现被除本身和1以外的数整除则退出循环并打印
EXIT;
END IF;
END LOOP;
I:=I+1;
END LOOP;
END;

#创建一个函数,从1累计到N的函数
create or replace function addn(n number)
return number is
begin
if n=1 then
return 1;
else
return n+addn(n-1);
end if;
end;

#然后执行
select addn(100) from dual;