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
까지만 써도 실행이 된다.
반응형
'Database' 카테고리의 다른 글
[데이터베이스/DB] 트랜잭션 - 기능을 단위로 묶는 이유 (0) | 2021.06.04 |
---|---|
[오라클/ORACLE] PL/SQL - 트리거(TRIGGER) | 테이블 연결 후 자동화 (0) | 2021.06.03 |
[오라클/ORACLE] 시퀀스(SEQUENCE) - NEXTVAL | CURRVAL | 초기화 (0) | 2021.06.01 |
[오라클/ORACLE] 데이터 잘라서 보는 ROWNUM (0) | 2021.06.01 |
[오라클/ORACLE] 단일행 함수 ROUND | ABS | UPPER | SUBSTR (0) | 2021.05.31 |