CREATE OR REPLACE PACKAGE employees_mgr AUTHID DEFINER
IS
FUNCTION onerow (employee_id_in IN hr.employees.employee_id%TYPE)
RETURN hr.employees%ROWTYPE
RESULT_CACHE;
END;
Package created.
Trap NO_DATA_FOUND, Change Message
CREATE OR REPLACE PACKAGE BODY employees_mgr
IS
FUNCTION onerow (employee_id_in IN hr.employees.employee_id%TYPE)
RETURN hr.employees%ROWTYPE
RESULT_CACHE
IS
l_employee hr.employees%ROWTYPE;
BEGIN
SELECT *
INTO l_employee
FROM hr.employees
WHERE employee_id = employee_id_in;
RETURN l_employee;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
raise_application_error (
-20000,
'An employee with ID ' || employee_id_in || ' is not in the system.');
END;
END;
Package Body created.
DECLARE
l_employee hr.employees%ROWTYPE;
BEGIN
l_employee := employees_mgr.onerow (-100);
END;
ORA-20000: An employee with ID -100 is not in the system.