'국비지원'의 시작

오라클 비긴즈 09 ( PL/SQL 문과 사용자 정의 함수( Function ) )

개발할 결심 2023. 2. 16. 17:50

  오라클에서 주로 사용하는 것들은 사용자가 정의하여 함수로 만들어 놓고서 편하게 꺼내어 쓸 수 있는 기능이 있다. 바로 사용자 정의 함수 , FUNCTION 이다. 그렇다면, 이 FUNCTION 을 어떻게 만들고 , 어떻게 사용하는 지는 밑에서 간단한게 설명해보도록 하겠다. 

  --  [ 문법 ] --  
  --  create or replace function 함수명
  --  ( 파라미터변수명 IN 파라미터변수의타입 ) ※주의할점:파라미터변수의 타입에는 크기를 입력하면 안된다.
  --  return  리턴되어질타입
  --  is -- 
  --    변수선언 ; ※주의할점: IS 뒤를 ()괄호로 묶는 실수를 했음.  
  --  begin --
  --    실행문 ;  
  --    return 리턴되어질값; 
  --  end 함수명 ;

위의 문법을 따라서, FUNCTION 문을 작성해야 한다.  나는 처음으로  FUNCTION 문을 작성할 때, 위의 주의사항에 적어둔 것들을 실수하여, 10분정도 내 코드를 보면서 에러를 고쳤었다. 이걸 보는 사람들은 그런 실수를 하지 않기를 바란다. 위에는 문법을 나타냈다면 , 밑에서 실제로 코드를 쓰고 결과값을 볼 수 있도록 하겠다. 우선, 그러기 위해서, 오라클의 샘플 코드에서 실행하도록 하겠다. 

    -- 해당 FUNCTION의 기능은 주민번호를 입력하면, 성별을 알아와주는 함수이다. --
    create or replace function func_gender
    ( p_jubun   IN  varchar2 )              -- varchar2 (7) 와 같이 자리수를 쓰면 오류이다.!!!  
    return Nvarchar2                        -- 파라미터와 return 에는 자리수를 쓰면 안된다.
    
    is
        v_result Nvarchar2(4) ;             -- 여기에는 반드시 자리수를 써야 한다. !!!
    begin
        select case when substr(p_jubun,7,1) in ('1','3') then '남' else '여' end 
            INTO 
            v_result  -- 결과를 v_result에 저장해준다. 
        from dual ;
        
        return v_result ;
    end func_gender ;