[오라클/ORACLE] PL/SQL - 프로시저(PROCEDURE) | 저장하고 사용하는 SQL

PL/SQL

Procedural Language/Structured Query Language의 줄임말이다. 오라클의 SQL 전용 언어라고 보면 된다. 일반 SQL 문으로는 처리하기 어려운 문제들이 있는데, SQL에 변수, 제어, 입출력 등 기능을 추가해서 그런 문제들을 해결할 수 있게 돕는다.

PL/SQL는 크게 3가지다.

  • 프로시저
  • 트리거
  • 사용자 지정 함수

프로시저(PROCEDURE)

프로시저는 특정 기능을 수행하는 로직을 만들어 놓고 필요할 때 이를 수동으로 동작시키는 방식으로 사용된다. 코드를 좀더 편하고 효율적으로 사용할 수 있다. 또 시스템 성능에도 도움이 된다고 한다. 프로시저는 오라클 데이터베이스에 스키마 객체로 저장된다. 로직을 처리하기만 하고 결과 값은 반환하지 않는다.

 

사용법

CREATE [OR REPLACE ] PROCEDURE 프로시저명 (
    파라미터
)     
IS
[변수 선언]

BEGIN
    SQL문 구현
END;
/

아래 예제는 book이라는 테이블이 존재하는 상황에서 사용한 것이다. book 테이블은 파라미터로 bookid, bookname, publisher, price를 가지고 있다.

CREATE OR REPLACE PROCEDURE insertbook (
mybookid IN number,
mybookname IN varchar2,
mypublisher IN varchar2,
myprice IN number) -- 파라미터 선언
IS -- 변수 선언. 따로 하지 않았음
BEGIN -- PL/SQL 프로그램 코딩
    INSERT INTO Book(bookid, bookname, publisher, price)
    	VALUES(mybookid, mybookname, mypublisher, myprice);
END;
/

이제 insertbook이라는 프로시저를 사용하면 book 테이블에

INSERT INTO Book(bookid, bookname, publisher, price)
    VALUES(mybookid, mybookname, mypublisher, myprice);

위와 같은 SQL문을 수행할 수 있다.

EXEC InsertBook (20, '자바 프로그래밍', '한빛아카데미', 26000);

정확한 명칭은 EXECUTE지만 EXEC까지만 써도 실행이 된다.

반응형

댓글

Designed by JB FACTORY