1. Enorable
  2. Base De Datos
  3. Oracle
2
0
 
vistas: 873
Joswald Oropeza
| 05/09/2019

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

Crear una función de Oracle que permite validar si un valor es de tipo fecha o no, poniendo en práctica un método de comparación utilizado para lograr el objetivo.

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.
CREATE OR REPLACE FUNCTION F_IS_DATE(p_date VARCHAR2)
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;
/
Function created.

Todos los titulares en un solo lugar...