Wednesday 28 March 2012

Function to get the employee grade by passing person id and effective date

CREATE OR REPLACE FUNCTION getgrade (pid IN NUMBER, effdate IN DATE) RETURN VARCHAR2 IS

m_grade VARCHAR2(10);

BEGIN

    SELECT pg.NAME
      INTO m_grade
      FROM per_grades pg, per_all_assignments_f ppf
     WHERE ppf.GRADE_ID = pg.GRADE_ID
       AND ppf.person_id = pid
       AND TRUNC(effdate) BETWEEN TRUNC(ppf.EFFECTIVE_START_
DATE) AND TRUNC(ppf.EFFECTIVE_END_DATE);
--       AND ppf.ROWID IN (SELECT MAX(ROWID) FROM per_all_assignments_f GROUP BY person_id);
      
    RETURN m_grade;
   
EXCEPTION
    WHEN others THEN
         RETURN NULL;          

END;
/

No comments:

Post a Comment