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;