diff --git a/BD/ORACLE/ATUM_BD/HR/PROCEDURE/CALCULAR_PROMEDIO.SQL b/BD/ORACLE/ATUM_BD/HR/PROCEDURE/CALCULAR_PROMEDIO.SQL new file mode 100644 index 0000000..dd564d9 --- /dev/null +++ b/BD/ORACLE/ATUM_BD/HR/PROCEDURE/CALCULAR_PROMEDIO.SQL @@ -0,0 +1,26 @@ + + CREATE OR REPLACE EDITIONABLE PROCEDURE "CALCULAR_PROMEDIO" +( + p_numeros IN VARCHAR2, + p_promedio OUT NUMBER +) +AS + l_suma NUMBER := 0; + l_contador NUMBER := 0; + l_numero NUMBER; +BEGIN + FOR i IN 1 .. LENGTH(p_numeros) LOOP + l_numero := SUBSTR(p_numeros, i, 1); + IF l_numero IS NOT NULL THEN + l_suma := l_suma + l_numero; + l_contador := l_contador + 1; + END IF; + END LOOP; + + IF l_contador > 0 THEN + p_promedio := l_suma / l_contador; + ELSE + p_promedio := NULL; + END IF; +END calcular_promedio; +/ \ No newline at end of file