Problemas con funcion de fechas

ritho
10 de Junio del 2009
Necesito una funcion que compare dos fechas y luego me retorne un valor para indicar que la fecha de inicio no sea mayor a la fecha de fin tengo este codigo:

/*comparacion de fechas*/

CREATE OR REPLACE FUNCTION fun_fecha_comp (fecha_ini date, fecha_fin date)
RETURN varchar2 IS

resultado varchar(2);
fecha1 date;
fecha2 date;

BEGIN

if(fecha1 > fecha2) then
resultado := 'NO';
else
resultado := 'SI';
end if;
return (resultado);
exception when others then
return 0;

END fun_fecha_comp;

Plus
10 de Junio del 2009
Esa te sirve, solo que debes comparar es el valor asignado a la funcion. Es decir, cambia donde dice:
if(fecha1 > fecha2) then

En la excepcion deberias colocar un varchar, en vez de return 0
por

if(fecha_ini> fecha_fin) then

ritho
10 de Junio del 2009
grax voy a probar que pasa

ritho
10 de Junio del 2009
ahora se me produce un error cuando llamoa ala funcion el coddigo que poseo es:

begin
declare

in_fecha date;
fi_fecha date;
valor varchar2(2);
begin
:new.in_fecha := fecha_inicio_e;
:new.fi_fecha := fecha_fin_e;
valor :=fun_fecha_comp(in_fecha,fi_fecha);
if(valor ='NO')then
raise_application_error(-34223,'error');
end if;

end;

en que se estara produciendo el error

grax