지난 포스팅에서 PL / SQL 을 활용하는 방법을 간략하게 작성하였다.

이번에는 PL / SQL 을 활용한 프로시저에 대해 정리한다.

 

프로시저란 특정 작업을 수행하는 SQL 프로그램 블록을 뜻한다.

프로시저는 매개변수를 받을 수 있으며, 반복적으로 사용이 가능하다.

 

이번 예제에서도 지난번과 같이 HUMAN, CAR 테이블을 사용한다.

 

1. 프로시저 생성 / 삭제하기

모든 오브젝트가 그러하듯 프로시저 또한 CREATE 문으로 생성이 가능하다. 전체적으로 보면 테이블 생성과

비슷해 보인다. 하지만 프로시저에서는 컬럼이 아닌 변수를 생성한다.

CREATE OR REPLACE PROCEDURE CAR_INSERT
(
[변수1] in [type],
[변수2] in [type],
[변수3] in [type]
)
 

삭제하는 방법은 역시나 DROP 을 사용하여 삭제할 수 있다.

DROP PROCEDURE CAR_INSERT;
 

2. 프로시저 활용하기

프로시저는 PL / SQL 과 함께 사용이 가능하다.

CREATE OR REPLACE PROCEDURE CAR_INSERT
(
P_C_H_NO in CAR.C_H_NO % type,
P_C_NO in CAR.C_NO % type,
P_C_NAME in CAR.C_NAME % type
)

IS -- 프로시저 내부에서 사용할 지역변수 선언
BEGIN
    INSERT INTO CAR 
    VALUES(P_C_H_NO, P_C_NO, P_C_NAME);
    COMMIT;
END;
/
 

코드의 윗부분은 프로시저의 생성과 동일하다. 아랫부분 역시 지난 PL / SQL 에서 사용했던 코드와 매우 유사하다.

차이점은 BEGIN 부분에서 INSERT 를 사용한다는 점인데 VALUES 의 안에는 프로시저를 생성하며 만들었던

변수들이 들어가 있다.

 

이제 이 프로시저를 사용해 보자.

EXECUTE CAR_INSERT(5, '5050', '벤츠');
 

EXECUTE 는 프로시저를 실행한다는 명령어 이다.

위의 코드를 실행해 보면 BEGIN에서 지정한 INSERT 안의 VALUES의 변수에 해당 값들이 들어간다.

SELECT 를 통해 확인해 보면실행 결과는 다음과 같다.

대표사진 삭제

실행 결과

마지막으로 INSERT 가 아닌 UPDATE문을 사용하여 '벤츠' 를 '쏘나타' 로 떡락시켜 보도록 한다.

CREATE OR REPLACE PROCEDURE CAR_UPDATE
(
P_C_NAME IN CAR.C_NAME % TYPE
)
IS
BEGIN
UPDATE CAR SET C_NAME = '쏘나타'
WHERE C_NAME = P_C_NAME;
COMMIT;
END;
/
EXECUTE CAR_UPDATE('벤츠');
 
대표사진 삭제

실행 결과

 

 

'DB > 구자료' 카테고리의 다른 글

SQL로 별찍기  (0) 2022.08.28
저장 함수 (FUNCTION)  (0) 2022.08.28
PL / SQL  (0) 2022.08.28
INDEX  (0) 2022.08.28
VIEW (feat. OR REPLACE)  (0) 2022.08.28

+ Recent posts