기본개념)
- 자신을 호출한 곳으로 리턴 해주는 값은 없고 호출되어 실행만 된다.
- 실행환경과 Stored Program 사이에 값을 전달하기 위해 파라미터를 사용한다.
- 파라미터 종류
1. IN : 호출하는 곳에서 함수 or 프로시저로 값을 전달
2. OUT : 함수 or 프로시저에서 호출한 곳으로 값을 전달 // 빈 깡통을 생각하면 쉽다. 비어이는 깡통에 결과값이 담긴다.
3. IN OUT : 호출하는 곳에서 함수 or 프로시저로 값을 전달하고 동시에 함수 or 프로시저에서 호출한 곳으로 값을 전달하는 변수
- 프로시저 Hearder의 끝에는 IS[AS]가 와야하고 IS와 BEGIN사이에 BEGIN~END에서 사용할 변수를 선언
- 자신의 스키마에서 프로시저를 만들기 위해서는 CREATE PROCEDURE 시스템권한이 있어야 하며,
다른 스키마 계정에서 프로시저를 만들기 위해서는 CREATE ANY PROCEDURE 시스템 권한이 있어야 한다.
기본형식)
CREATE [OR REPLACE] PROCEDURE procedure_name[parameters]
IS[AS]
선언부
BEGIN
도입부
EXCEPTION
예외처리
END;
예제)
CREATE OR REPLACE PROCEDURE ojc3 (p_empno IN NUMBER, p_new_sal IN NUMBER) // 외부에서 값을 넣어주어야 한다.
IS
BEGIN
UPDATE emp
SET sal = p_new_sal
WHERE empno = p_empno;
COMMIT;
END ojc3;
SELECT empnp, ename, sal FROM emp WHERE empno = 7369;
EMPNO ENAME SAL
7369 smith 800
호출)
exec ojc3(7369, 4500);
SELECT empnp, ename, sal FROM emp WHERE empno = 7369;
EMPNO ENAME SAL
7369 smith 4500
'Database' 카테고리의 다른 글
[ORACLE] SELECT문 알아보기 (0) | 2018.02.28 |
---|---|
[ORACLE] 오라클 기초 단일행 함수 (0) | 2018.02.28 |
[ORACLE] 오라클 함수(Function)를 알아보자 (0) | 2018.02.27 |