diferencia entre RAISE Y tomador de excepciones
Publicado por vaninana (3 intervenciones) el 11/09/2003 20:02:30
hola a todos, aca les mando un codigo que hice, el problema que tengo es que no veo la diferencia entre levantar un error con el RAISE_APPLICATION_ERROR y cuano tengo que definir una excepcion que lo levante. puede ser que en el primer caso si tengo u error se propaga y en el segundo caso no??
CREATE OR REPLACE FUNCTION get_service_yrs (p_empid IN employees.employee_id%TYPE)
RETURN NUMBER
IS
v_fecha job_history.start_date%TYPE;
v_years NUMBER;
--v_fecha1 job_history.start_date%TYPE;
BEGIN
SELECT MIN(start_date)
INTO v_fecha
FROM job_history
WHERE employee_id=p_empid;
/*SELECT hire_date
INTO v_fecha1
FROM employees
WHERE employee_id=p_empid;*/
v_years:= nvl(TRUNC((sysdate - v_fecha)/ 365),0);-- + NVL( TRUNC((sysdate - v_fecha1)/ 365),0);
RETURN (v_years);
/*EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20000,'EMPLEADO INVALIDO');*/
END;
/
desde ya muchas gracias vanina
CREATE OR REPLACE FUNCTION get_service_yrs (p_empid IN employees.employee_id%TYPE)
RETURN NUMBER
IS
v_fecha job_history.start_date%TYPE;
v_years NUMBER;
--v_fecha1 job_history.start_date%TYPE;
BEGIN
SELECT MIN(start_date)
INTO v_fecha
FROM job_history
WHERE employee_id=p_empid;
/*SELECT hire_date
INTO v_fecha1
FROM employees
WHERE employee_id=p_empid;*/
v_years:= nvl(TRUNC((sysdate - v_fecha)/ 365),0);-- + NVL( TRUNC((sysdate - v_fecha1)/ 365),0);
RETURN (v_years);
/*EXCEPTION
WHEN NO_DATA_FOUND THEN
RAISE_APPLICATION_ERROR(-20000,'EMPLEADO INVALIDO');*/
END;
/
desde ya muchas gracias vanina
Valora esta pregunta
0