CREATE OR REPLACE FUNCTION printsum(n IN number) IS
res number:=0;
BEGIN
while(n>0)
LOOP
res:=res+n;
n:=n-1;
EXIT WHEN n=0;
END LOOP;
dbms_output.put_line(' result of sum: '||res);
END;
/
I'm trying to print sum of n numbers, but I'm getting the following error:
Warning: Function created with compilation errors.
3 Réponses :
Il y a peu d'erreurs dans votre code.
1) 2) Essayez ceci: p> sortie: p> fonction code> doit avoir un retourner code> mais votre code avait manquant retour code> Début et à la fin. p> dans le paramètre code> ne peut pas être réaffecté à l'intérieur du code. Donc, vous devez copier le paramètre dans code> dans une variable à itérer. P>
L'extrait de code suivant est la solution:
Deux choses:
Utilisation de la formule vous donne une réponse de temps constante. P>
function printsum(n pls_integer) return n is begin if(n < 0) then raise value_error; end if; -- or a more meaningful exception return (n * (n + 1) / 2); end;