Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-member domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /ledcorps/www/wp/wp-includes/functions.php on line 6114 2.2 함수(FUNCTION) – 대나무숲

2.2 함수(FUNCTION)

출처 http://www.gurubee.net/lecture/1042

함수(Function)란?

  보통 값을 계산하고 결과 값을 반환하기 위해서 함수를 많이 사용 한다.

  대부분 구성이 프로시저와 유사 하지만 IN 파라미터만 사용 할 수 있다.

  반드시 반환 될 값의 데이터 타입을 RETURN문에 선언해야 한다.

  또한 PL/SQL블록 내에서 RETURN문을 통해서 반드시 값을 반환해야 한다.

함수 문법

 
-- PL/SQL 블록에는 적어도 한 개의 RETURN 문이 있어야 한다. 
-- PL/SQL Block은 함수가 수행 할 내용을 정의한 몸체부분이다.    
CREATE OR REPLACE FUNCTION function name 
  [(argument...)] 
  
  RETURN datatype
    -- datatype은 반환되는 값의 datatype입니다. 

IS 

  [변수 선언 부분]

BEGIN

  [PL/SQL Block]
   
  -- 리턴문이 꼭 존재해야 합니다
  RETURN 변수; 
        
END;     
    

함수 작성 예제

SQL> CREATE OR REPLACE FUNCTION FC_update_sal
     (v_empno         IN    NUMBER)

      -- 리턴되는 변수의 데이터타입을 꼭 정의해야 합니다
      RETURN  NUMBER

    IS
    
    -- %type 변수가 사용(스칼라 데이터 타입 참고)
    v_sal  emp.sal%type;

    BEGIN

    UPDATE emp
    SET sal  = sal  * 1.1
    WHERE empno  = v_empno;

    COMMIT;

    SELECT sal
    INTO v_sal
    FROM emp
    WHERE empno = v_empno;

    -- 리턴문이 꼭 존재해야 합니다
    RETURN v_sal;

   END;   
   /   
    

함수 실행 예제

-- 먼저 함수의 반환값을 저장 할 변수 선언. 
SQL> VAR salary NUMBER; 

-- EXECUTE 문을 이용해 함수를 실행합니다. 
SQL>EXECUTE :salary := FC_update_sal(7900); 

-- PRINT문을 사용하여 출력 
SQL>PRINT salary;
 
    SALARY
----------
      1045
    
-- 아래와 같이 SELECT문장에서도 사용 할 수 있다. 
SQL> SELECT ename, FC_update_sal(sal) FROM emp;
    

답글 남기기 0

Your email address will not be published. Required fields are marked *