본문 바로가기
Programming/DataBase

[oracle] function

by 막이 2012. 11. 9.

 

CREATE OR REPLACE FUNCTION NLDEVLMS.SF_LMS_USER_USERNM(v_user_id LMS_USER.USER_ID%TYPE)
RETURN VARCHAR IS

v_user_nm LMS_USER.USER_NM%TYPE;
/******************************************************************************
   NAME:       SF_LMS_USER_USERNM
   PURPOSE:

   REVISIONS:
   Ver        Date        Author           Description
   ---------  ----------  ---------------  ------------------------------------
   1.0        2007-02-13          1. Created this function.

   NOTES: LMS_USER.USER_ID를 이용하여 USER_NM을 획득.

   Keywords******************************************************************************/
BEGIN

   SELECT A.USER_NM INTO v_user_nm
   FROM LMS_USER A
      WHERE A.USER_ID = v_user_id;

   RETURN v_user_nm;
   EXCEPTION
     WHEN NO_DATA_FOUND THEN
       RETURN '';
     WHEN OTHERS THEN
       -- Consider logging the error and then re-raise
       RAISE;
END SF_LMS_USER_USERNM;
/
 

내부에서 조회하다가 발생한 예외를 외부에서 예외처리한다.

외부에서 처리할 필요 없이 그냥 내부에서 처리하면 되는 경우에는

조회쿼리문을 감싸고 있는 BEGIN, END 구문을 삭제하고 내부 예외처리부를 삭제하여

경우에 맞게 구문을 변경한다.