개발/KH국비지원과정

[KH국비지원 웹개발자 과정] Day_29 키워드 프로시저, 함수, 트리거

mabb 2022. 7. 21. 17:42
반응형

 안녕하세요. 삶의 질을 높이고자 노력하는 영차영차입니다.
드디어 국비지원 학원을 다니며 공부에 전념을 할 수 있게 되었습니다.
해당 포스팅은 강의 복기용으로 키워드를 기록하는 용도의 포스팅입니다.
--------------------------------------------------------------------------------------------------

-PL/SQL 객체의 유형
 1) 익명블록(Anonymous Block)
    :이름없는 블록. 간단한 block수행 시 사용

 2) 프로시저(Procedure)
    :특정 처리를 실행하는  서브프로그램의 한 유형. 프로시저 이름을 설정하고 다른 프로시저나 툴에서 호출하여 사용
    일련의 작업절차를 정리해서 저장해둔 것.  자주 사용하는 복잡한 작업들을 정리해두면 재사용시 편함.

 3) 함수(Function)
    :리턴값이 있는 객체.
    :
4) 트리거(Trigger)
   :어떤 조건이나 동작 수행 시 자동적으로 수행되는 행동
  한 테이블에서 INSERT가 일어날 경우 다른 테이블의 값을 수정하는 등의 활용 가능  

-CREATE OR REPLACE

-SET SERVEROUTPUT ON; 기능은 DBMS_OUTPUT.PUT_LINE 기능을 보여주는 것.

-프로시저
CREATE PROCEDURE DEL_ALL_EMP
IS
BEGIN
    DELETE FROM EMP_DUP;
    COMMIT;
END;
/

-프로시저 매개변수의 IN, OUT
IN은 매개변수, OUT은 리턴값

CREATE PROCEDURE PROC_SELECT_EMP_ID(
    P_EMP_ID IN EMPLOYEE.EMP_ID%TYPE,
    P_EMP_NAME OUT EMPLOYEE.EMP_NAME%TYPE,
    P_SALARY OUT EMPLOYEE.SALARY%TYPE,
    P_BONUS OUT EMPLOYEE.BONUS%TYPE
)
IS
BEGIN
    SELECT EMP_NAME, SALARY, NVL(BONUS,0)
    INTO P_EMP_NAME, P_SALARY, P_BONUS
    FROM EMPLOYEE
    WHERE EMP_ID = P_EMP_ID;
END;
/

-바인드변수
VAR  변수명 타입, 사용시 콜론을 앞에 붙여줌. EX) :V_EMP_ID

-프로시저 ,펑션, 트리거는 프로젝트에서 사용할 수 있는 기능이다.

-트리거의 FOR EACH ROW,  바인드변수 OLD와 NEW
-- 1. INSERT 트리거 : OLD -> NULL, NEW -> 데이터변경후의 레코드
-- 2. UPDATE 트리거 : OLD -> 데이터변경전 레코드, NEW -> 데이터변경후의 레코드
-- 3. DELETE 트리거 : OLD -> 데이터변경전 레코드, NEW -> NULL

반응형