ISNUMERIC, ISDATE??

Elena
05 de Noviembre del 2004
Buenas,
quería saber si en Oracle existe alguna función para saber si un valor que me pasan tiene formato numérico, o formato fecha. Estoy buscando y no he encontrado nada y no sé cómo implementarlo.

Gracias

Rodolfo Reyes
05 de Noviembre del 2004
Lo que puedes hacer es tratar de convertir a fecha o numerico y capturar el error si es que no se seja convertir.

Ejemplo:


Bandera := 1;
begin
variable := to_number(parametro);
exception when others then
bandera := 0;
end;

Entonces si en la variables bandera te queda un 0 quiere decir que lo que tenias en la variable parametro no es un numero. Y algo parecido podrias tratar de hacer con la fecha.


Elena
05 de Noviembre del 2004
Hola,
eso lo había pensado pero el problema es que se saldría del programa y no continuaría con la ejecución y yo tengo que comprobar si es numérico que haga una cosa y sino que haga otra.
Alguna solución más.
Gracias

yo
05 de Noviembre del 2004
Elena.

Rodolfo te lo ha puesto bien claro. Te añado codigo.

IF BANDERA = 0 THEN
XXXXX;
ELSE
YYYYY
END IF;

No se que mas quieres

yo
05 de Noviembre del 2004
O mejor

BANDERA := 1;
BEGIN
PARAMETRO := PARAMETRO * 1;
EXCEPTION
WHEN OTHERS THEN
BANDERA := 0;
END;

IF BANDERA = 0 THEN -- ES FORMATO FECHA
XXXXX;
ELSE -- ES FORMATO NUMBER
YYYYY;
END IF

Yo creo que esta clarito