2. 프로시저(PROCEDURE)와 함수(FUNCTION) - 2.1. 프로시저

프로시져란..

특정 작업을 수행할수 있고, 이름이 있는 PL/SQL 블록으로서. 매개 변수를 받을수
있고.. 반복적으로 사용할수 있는거죠.. 보통 연속 실행 또는 구현이 복잡한 트랜잭션을 수행하는
PL/SQL블록을 데이터 베이스에 저장하기 위해 생성합니다.

⊙ CREATE OR REPLACE 구문을 사용하여 생성합니다.
⊙ IS 로 PL/SQL의 블록을 시작합니다.
⊙ LOCAL 변수는 IS 와 BEGIN 사이에 선언합니다.
[Syntax]

CREATE OR REPLACE procedure name
IN argument
OUT argument
IN OUT argument

IS

[변수의 선언]

BEGIN --> 필수

[PL/SQL Block]
-- SQL문장, PL/SQL제어 문장

[EXCEPTION] --> 선택
-- error가 발생할 때 수행하는 문장

END; --> 필수


프로시저 작성 예제

SQL>CREATE OR REPLACE PROCEDURE update_sal
/* IN Parameter */
(v_empno IN NUMBER)

IS

BEGIN

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

COMMIT;

END update_sal;
/

프로시져가 생성되었습니다.




설명..
프로시저의 이름은 update_sal이고..
프로시저 update_sal은 사번(v_empno)를 입력받아서 급여를 update시켜주는 sql문입니다.
프로시저를 끝마칠때에는 항상 "/"를 지정 합니다.

프로시저의 실행
EXECUTE 문을 이용해 프로시저를 실행합니다.

SQL> execute update_sal(7369);

PL/SQL 처리가 정상적으로 완료되었습니다.

7369번 사원의 급여가 10% 인상됐습니다.
SELECT 문을 실행시켜보면 데이터가 수정된 것을 확인할수 있습니다.



Parameter란

⊙ 실행 환경과 program사이에 값을 주고 받는 역할을 합니다.

⊙ 블록 안에서의 변수와 똑같이 일시적으로 값을 저장하는 역할을 합니다.

⊙ Parameter의 타입
- IN : 실행환경에서 program으로 값을 전달
- OUT : program에서 실행환경으로 값을 전달
- INOUT : 실행환경에서 program으로 값을 전달하고,
다시 program에서 실행환경으로 변경된 값을 전달
.