1. Enorable
  2. Base De Datos
  3. Oracle
70
 
22/05/2017 | vistas: 4.58 K

Función para Oracle que permite validar si un valor es numérico o no

Crear una función de Oracle para validar si es numérico un valor y poner en práctica el recurso a través de la presentación de un ejemplo sencillo.

En Oracle muy poco se conoce de una forma rápida y eficaz para validar si un valor pasado como parámetro es numérico o no, pero ahora podrá determinar dicha operación con esta simple función creada en PL/SQL.

Esta función nos permite evaluar los datos numéricos antes de ser procesados en la base de datos o en una variable que es utilizada por algún sistema que se encuentra bajo la plataforma de Oracle.

La función sólo requiere de un parámetro de tipo "VARCHAR2", con la finalidad de que nos devuelva si dicho parámetro es un valor numérico o no. Para ello, retornará un número mayor de cero (0) si la validación resulta verdadero, de ser falso retornará un cero (0).

Te recuerdo que puedes apoyar la causa a través de donaciones (BTC) y puedes enviarme tus comentarios a través de nuestro sistema de contacto.

De igual manera, les invito a disfrutar del mejor libro de programación de Oracle disponible del autor Steven Feuerstein.
icon
Veamos el código de la función.

CREATE OR REPLACE FUNCTION F_IS_NUMBER (p_cadena IN VARCHAR2)
RETURN NUMBER -- Validar si es entero o no, depende del tipo de dato a retornar.
IS
/* ************************************************************************************
* Procedimiento: f_is_number
* Descripción: Determina si el valor Varchar2 pasado como argumento es un valor numérico.
* Parámetros: p_cadena valor a evaluar
* Retorna: v_numero (0 o mayor a 0)
* NOTA: Si desea validar valores enteros el tipo de dato a retornar debe ser INT, caso contrario NUMBER.
* *********************************************************************************
*/
v_numero NUMBER;
BEGIN
IF p_cadena IS NOT NULL THEN
v_numero := TO_NUMBER( REPLACE(p_cadena, ',', '') );
RETURN v_numero;
ELSE
RETURN 0;
END IF;
EXCEPTION
WHEN VALUE_ERROR THEN
RETURN 0;
END F_IS_NUMBER;
/
Consulta Lo+ Top de Base De Datos
Todos los titulares en un solo lugar...