안녕하세요.
오라클 사용자 정의함수를 하나 만들어 사용하려는데 계속 Invalid 상태가
되서요.
FUNC_GET_AMT (IN_JIKG_CODE IN VARCHAR2, IN_HOBONG IN VARCHAR2, IN_PD_CODE IN VARCHAR2)
RETURN NUMBER IS
  IS_RETURN  NUMBER(9);
BEGIN
   IS_RETURN := 0;
   -- 직급 및 호봉에 따른 기본급을 구한다
   IF IN_PD_CODE = 'PAY' THEN
      BEGIN
         SELECT GRAD_BASE_AMT
           INTO IS_RETURN
           FROM QX200MS
          WHERE JIKG_CODE = IN_JIKG_CODE AND GRAD_CD = IN_HOBONG;
         RETURN IS_RETURN;
      EXCEPTION
         WHEN NO_DATA_FOUND THEN
            BEGIN
               RETURN IS_RETURN;
            END;
      END;
   END IF;
   -- 차량유지비 및 교통비를 구한다
   IF IN_PD_CODE = 'A17' THEN
      BEGIN
         SELECT GRAD_CAR
           INTO IS_RETUTN
           FROM QX200MS
          WHERE JIKG_CODE = IN_JIKG_CODE AND GRAD_CD = IN_HOBONG;
         RETURN IS_RETURN;
      EXCEPTION
         WHEN NO_DATA_FOUND THEN
            BEGIN
               RETURN IS_RETURN;
            END;
      END;
   END IF;
   -- 시간외 수당을 구한다
   IF IN_PD_CODE = 'A10' THEN
      BEGIN
         SELECT GRAD_OT
           INTO IS_RETUTN
           FROM QX200MS
          WHERE JIKG_CODE = IN_JIKG_CODE AND GRAD_CD = IN_HOBONG;
         RETURN IS_RETURN;
      EXCEPTION
         WHEN NO_DATA_FOUND THEN
            BEGIN
               RETURN IS_RETURN;
            END;
      END;
   END IF;
END;
그리 복잡한 함수는 아닌데, 고생하고 있네요.
도대체 어디서 틀렸는지 모르겠네요.
그럼, 즐코하시길.
			 
	
	
    
    
	
	
    
    
    
CREATE OR REPLACE PROCEDURE FUNC_GET_AMT (IN_JIKG_CODE IN VARCHAR2, IN_HOBONG IN VARCHAR2, IN_PD_CODE IN VARCHAR2, IS_RETURN OUT NUMBER) IS
BEGIN
IF IN_PD_CODE = 'PAY' THEN
SELECT GRAD_BASE_AMT
INTO IS_RETURN
FROM QX200MS
WHERE JIKG_CODE = IN_JIKG_CODE AND GRAD_CD = IN_HOBONG;
ELSIF IN_PD_CODE = 'A17' THEN
SELECT GRAD_CAR
INTO IS_RETURN
FROM QX200MS
WHERE JIKG_CODE = IN_JIKG_CODE AND GRAD_CD = IN_HOBONG;
ELSIF IN_PD_CODE = 'A10' THEN
SELECT GRAD_OT
INTO IS_RETURN
FROM QX200MS
WHERE JIKG_CODE = IN_JIKG_CODE AND GRAD_CD = IN_HOBONG;
ELSE IS_RETURN := 0;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
IS_RETURN :=0;
END FUNC_GET_AMT;