IT 끄적이기/업무(SeAH - MES)

# 12, 프로시저와 함수

김팡 2020. 5. 17. 19:35

프로시저(Procedure)란?

특정 작업을 수행 하는, 이름이 있는 PL/SQL BLOCK 이다.

매개 변수를 받을 수 있고, 반복적으로 사용 할 수 있는 BLOCK 이다.

보통 연속 실행 또는 구현이 복잡한 트랜잭션을 수행하는 PL/SQL BLOCK을 데이터베이스에 저장하기 위해 생성 한다.

학습했던 예제)

CREATE OR REPLACE PROCEDURE UPDATE_SAL_KIM

 (P_EMP_NO IN NUMBER)  

  IS

  BEGIN

  UPDATE EMP SET SAL = SAL*1.1 WHERE EMPNO=P_EMP_NO ;

  EXCEPTION WHEN OTHERS THEN

  NULL;

  END;

FOR , LOOP 문

CREATE OR REPLACE PROCEDURE GMES.UPDATE_SAL_KIM  

  IS

  BEGIN

    FOR C1 IN (SELECT EMPNO FROM EMP WHERE SAL<=3000)

    LOOP

      UPDATE EMP SET SAL = SAL*1.1 WHERE EMPNO=C1.EMPNO ;  

    END LOOP;

  

  EXCEPTION WHEN OTHERS THEN

  NULL;

  END;

 

함수(Function)란?

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

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

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

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

학습했던 예제)

CREATE OR REPLACE FUNCTION GMES.UPDATE2_SAL_KIM

  (P_EMP_NO IN NUMBER)

  RETURN NUMBER

  IS

  V_SAL NUMBER;

  BEGIN

  SELECT SAL*1.1 INTO V_SAL FROM EMP WHERE EMPNO=P_EMP_NO;

  RETURN  V_SAL;

  END;

'IT 끄적이기 > 업무(SeAH - MES)' 카테고리의 다른 글

# 프로시저 복습 (근무시간)  (0) 2020.05.19
# 쿼리예제, SUBSTR  (0) 2020.05.17
#11, PL/SQL  (0) 2020.05.17
#10 서브쿼리  (0) 2020.05.14
#9 SQL, 함수, JOIN  (0) 2020.05.14