Novedades
Música
 
Internet
 
Marcas Y Productos
 
Leng. De Program.
 
Lo+ Visto
Base De Datos
40
 
05/11/2019

Función de Oracle para calcular porcentajes

Función de Oracle para calcular porcentajesCrear una función de Oracle que permita calcular porcentajes a un número cualquiera mediante la implementación de una operación matemática sencilla.

Esta función de usuario recibe dos argumentos de tipo número (p_porc y p_num), los cuales hacen referencia al valor del porcentaje que queremos calcular sobre un valor numérico dado. La misma debe retornar un número como resultado de la operación matemática.

En el caso de ocurrir un error no previsto, la función ejecutará una excepción que retornará el valor cero (0).

Función probada en la versión 19C de la base de datos Oracle.

Nota: Si este recurso te ha servido de ayuda recuerda que puedes apoyar mi trabajo realizando una contribución voluntaria a través de mi perfil de usuario de la página y/o puedes enviar tus comentarios a través del sistema de contacto.
CREATE OR REPLACE FUNCTION F_PORCENTAJE ( p_porc IN NUMBER, p_num IN NUMBER )
RETURN NUMBER
IS
/*
*******************************************************************************************
* Función: f_porcentaje
* Descripción: Calcula el porcentaje de un número pasado como argumento
* Parámetros: p_porc el valor del porcentaje a aplicar
* p_num el número al cual se aplicará el porcentaje requerido
* Retorna: v_return resultado del valor calculado
*******************************************************************************************
*/
v_return NUMBER;
BEGIN
/* Calcular el porcentaje de un número pasado como parámetro */
SELECT ( ( p_num * p_porc ) / 100 )
INTO v_return
FROM DUAL;
return v_return;
EXCEPTION
WHEN OTHERS
THEN
return 0;

END F_PORCENTAJE;
/

A continuación procedemos a probar el correcto funcionamiento de esta función que busca calcular un porcentaje aplicado sobre un valor numérico, mediante la corrida de una simple sentencia SQL.

/* Ejecutar la función mediante sentencia sql */
SELECT F_PORCENTAJE (50, 100) FROM DUAL;

Resultado:
F_PORCENTAJE(50,100)
50

De igual manera podemos probar la función a través de la implementación de un bloque PL/SQL, donde previamente asignaremos valores a dos variables declaradas para que sirvan de operandos en el manejo de la función que hemos creado.
DECLARE
/* Corrida de la función a través de un bloque PL/SQL
* Se definen previamente dos variables (v_a y v_b) como operandos para la función
*/
v_a NUMBER := 50; -- parámetro 1: el porcentaje a aplicar
v_b NUMBER := 1000; -- parámetro 2: el número al que aplicar porcentaje
v_return NUMBER := 0; -- valor retornado

BEGIN
/* Ejecutar la función para calcular el 50% de 1000 */
SELECT F_PORCENTAJE ( v_a, v_b )
INTO v_return
FROM dual;

DBMS_OUTPUT.PUT_LINE('El '|| v_a||'% de '||v_b||' es igual a: '||v_return);

END;
/
Statement processed.
El 50% de 1000 es igual a: 500
Consulta Lo+ Top de Base De Datos
Todos los titulares en un solo lugar...