프로시저는 특정 작업을 하는 이름이 있는 PL/SQL BLOCK으로 연속적인 내용이나 복잡한 내용을 데이터베이스 상에 저장 할 경우 생성하여 쓴다.

프로시저 예문을 보자.

CREATE OR REPLACE PROCEDURE TEST(data IN NUMBER) IS

BEGIN

--SELECT * FROM TABLE WHERE NO = data

UPDATE TABLE

SET NO = 100

WHERE NO = data;

COMMIT;

END TEST;

프로시저의 경우 위에서 보면 매 구문이 들어 갈 때 ;(세미콜론)을 붙여준다.

또한 문법상 시작(BEGIN)과 끝(END)를 확실히 명시를 해 주며 실행 할 경우 EXCUTE TEST(10) 형태로 실행하면 그 결과를 볼 수 있다.

또한 파라메터를 받는 부분에 IN외에 OUT과 INOUT 역시 이용이 가능하다.

IN은 파라메터 전달, OUT은 실행한 프로그램 쪽으로 그 결과 전달, INOUT은 혼용이다.

함수는 프로시저와 달리 어떠한 값을 반환하고자 할 경우 이용된다. 일반적으로 코드를 작성 할 경우 함수와 동일하다.

단, 프로시저와 달리 IN만 이용이 가능하다. OUT처럼 값을 전달 할 경우에는 RETURN을 이용한다.

다음은 함수 예문이다.

CREATE OR REPLACE FUNCTION TEST(data IN NUMBER)

RETURN NUMBER

IS

v_data TABLE.colume%type;

SELECT colume FROM TABLE WHERE NO = data;

RETRUN v_data;

END;