判断质数的方法,从2开始,凡是除了自身和1之外,都不能被整除的,就是质数。
CREATEOR REPLACE
FUNCTION isPrime(
num IN NUMBER)
RETURN BOOLEAN
IS
BEGIN
IF(num<=1) THEN
RETURN FALSE;
END IF;
FOR i IN 2..(num-1)
LOOP
IF(mod(num,i)=0) THEN
RETURN FALSE;
END IF;
END LOOP;
RETURN TRUE;
END;
//调用这个函数
declare
aboolean;
begin
a :=isPrime(27);
if a then
dbms_output.put_line('质数');
else
dbms_output.put_line('非质数');
end if;
end;
返回结果:false
解释:不能直接selectisPrime(27) from dual
oracle 没有 boolean 的数据类型,但是 plqsl 里是有的,所以 ls 的有问题,而在 function 写的没有问题