함수
똑같은 처리를 반복적으로 사용할 때 쓰는 것으로 로직을 수행한 뒤 특정한 값을 반환하는 서브 프로그램이다.
함수 생성
CREATE OR REPLACE FUNCTION 함수이름(매개변수명1 매개변수1타입, 매개변수2 매개변수2타입,매개변수3 매개변수3 타입, …)
RETURN 반환 타입;
IS
선언부
BEGIN
실행부
RETURN 반환값;
[EXCEPTION
예외처리부
END [함수이름];
함수 호출
함수명(매개변수1, 매개변수2, 매개변수3, …);
매개변수가 없는 함수를 생성할 수도 있다. (호출시 함수명만 기제해도됨)
프로시저
함수는 로직을 수행한 뒤 값을 반환하지만 프로시저는 로직 수행만 할 수있다.
프로시저 생성
CREATE OR REPLACE PROCEDURE 프로시저이름
(매개변수1 [IN / OUT / IN OUT] 데이터 타입 [ := 기본값],
매개변수2 [IN / OUT / IN OUT] 데이터 타입 [ := 기본값],
매개변수3 [IN / OUT / IN OUT] 데이터 타입 [ := 기본값], …)
IS
선언부
BEGIN
실행부
[EXCEPTION
예외 처리부]
END [프로시저 이름 ];
함수와 다르게 매개변수에 값이 안들어왔을 경우의 값을 설정할 수 있다.
매개변수에 붙는 IN은 입력받을 때, OUT은 출력할 때 사용하는 용어이다.
값을 프로시저를 호출한 로직의 다른 변수에 넣어주고 싶을 때 OUT을 사용하면 된다. 아무것도 안적을 경우 기본적으로 IN이 선언된다.
프로시저에서도 RETURN을 사용할 수 있는데 이것은 함수와 같이 결과값을 출력하는 용도가 아닌 로직을 빠져나가는 용도로 사용한다.
프로시저 실행
EXEC 프로시저명(매개변수1 값, 매개변수2 값, 매개변수3 값);
EXECUTE 프로시저명(매개변수1 값, 매개변수2 값, 매개변수3 값);
EXEC 프로시저명(매개변수1 => 매개변수1 값, 매개변수2 => 매개변수2 값, 매개변수3 => 매개변수3 값);
EXECUTE 프로시저명(매개변수1 => 매개변수1 값, 매개변수2 => 매개변수2 값, 매개변수3 =>매개변수3 값);
매개변수를 순서대로 기입하는 방법도 있지만 하나씩 매칭해주는 방법도 있다.
'프로그래밍 > 오라클' 카테고리의 다른 글
(오라클) PL/SQL (0) | 2016.07.10 |
---|---|
(오라클) With 절 (0) | 2016.07.10 |
(오라클) 계층형 쿼리 (0) | 2016.07.10 |
(오라클) 조인, 안시 조인 (0) | 2016.07.10 |
(오라클) SQL 함수 (0) | 2016.07.10 |