
Función Oracle para validar si valor es tipo fecha o no

A través de la implementación de un código PL/SQL mostramos una forma de validar si un valor que es pasado como argumento a través de una función construída, resulta verdadero o falso si éste es de tipo fecha.
Dicha función consiste en tomar un valor de tipo VARCHAR2, que mediante una estructura condicional evalúa si dicho valor está comprendido entre las fechas "01/01/1900" y "31/12/9999". Si el resultado resulta ser cierto la función retornará "S", en caso contrario retornará "N".
El objetivo de la función es evaluar un valor como una fecha.
Esta función sólo requiere de un parámetro de tipo "VARCHAR2", que puede retornar dos valores de tipo CHAR ("S" ó "N").
Solo espero que esta función te sirva de ayuda y aprovecho la ocasión para mencionar que puede seguir disfrutando de recursos como éste, apoyando mi contribución mediante la donación (BTC). Ademas puedes enviar tus comentarios a través de nuestro sistema de contacto.
RETURN CHAR
IS
/* ************************************************************************************
* Procedimiento: f_is_date
* Descripción: Determina si el valor Varchar2 pasado como argumento es un valor de tipo fecha.
* Parámetros: p_date valor a evaluar
* Retorna: v_date ("S" ó "N")
* *********************************************************************************
*/
v_date DATE ;
v_return CHAR := 'S';
BEGIN
BEGIN
v_date := TO_DATE (p_date, 'DD/MM/YYYY');
IF v_date NOT BETWEEN TO_DATE ('01/01/1900', 'DD/MM/YYYY')
AND TO_DATE ('31/12/9999', 'DD/MM/YYYY') THEN
v_return := 'N';
END IF;
EXCEPTION
WHEN OTHERS
THEN
v_return := 'N';
END;
RETURN v_return;
END F_IS_DATE;
/