PROCEDURE와 FUNCTION의 차이점
- 프로시저는 매개변수로 데이터를 전달받을 수도 있고, 빋지 않을 수도 있다.
실행 후 프로시저는 호출한 프로그램에게 값을 반환할 수도 있고, 안 할 수도 있다.
- 함수도 매개변수로 데이터를 전달받을 수도 있고, 빋지 않을 수도 있다.
그러나 함수는 프로시저와 다르게 실행 후 반드시 하나의 값을 반환(RETURN)한다.
- 생성방법과 호출방법이 다르다.
1. Stored PROCEDURE(프로시저)
- 생성방법
CREATE [OR REPLACE] PROCEDURE 프로시저명(매개변수1, ...) IS [지역변수선언; ]
BEGIN
처리명령문;
......;
[EXCEPTION]
[ 처리명령문;]
[......;]
END [프로시저명];
- 호출방법 : SQL*PLUS 커맨드창에서 SQL>EXECUTE 프로시저명(매개변수1,...)
2. Function(함수)
- 생성방법
CREATE [OR REPLACE] Function 함수명(매개변수1, ...)
RETURN 데이터타입
IS [지역변수선언; ]
BEGIN
처리명령문;
......;
RETURN 변수명;
[EXCEPTION]
[ 처리명령문;]
[......;]
END [함수명];
- 호출방법 : SQL내장함수와 동일. SELECT문 내에서 사용하면 된다.
예를 들어, 함수명이 CONVERT라면,
SELECT CONVERT(매개변수1,...) FROM TABLE명