PL/SQL
- Procedual Language / SQL
- SQL을 확장한 절차적인 프로그래밍 언어
- 오라클에서만 사용 가능
- PL/SQL은 DB관련 특정 작업을 수행하는 명령어와 실행에 필요한 여러 요소를 정의하는 명령어 등으로 구성됨
- 조건, 반복 등 JAVA에서 사용하는 것들을 쓸 수 있지만, 실무에서는 잘 사용하지 않음
- 기술을 배울수록 역할이 분산되어 있는데, 프로그램과 자바를 한번에 하기 보단 SQL은 DB에서, 개발은 JAVA에서 하는 것이 좋음 -> 현재는 업무 분담이 잘 되어 있어서 잘 사용하지 않음
사용 이유
장점
- 하나의 프로시저로 기능이 묶여서 편하게 사용할 수 있기 때문 -> 캡슐화
- 자바랑 연동하는 것 보다 프로시저를 한 번 실행하는 것이 처리속도가 훨씬 빠름 -> 과거에 많이 사용했었음
단점
- 특정 DB에 종속됨(Oracle이 아니면 사용할 수 없음)
- 수정 시 DB에서 수정해야 함
블록
- PL/SQL 프로그램의 기본 단위
- PL/SQL 관련 명령어를 모아둔 것
출력하기
SET SERVEROUTPUT ON;
BEGIN
DBMS_OUTPUT.PUT_LINE('HELLO!');
END;
주석
DECLARE
V_EMPNO CONSTANT NUMBER(4) := 7700;
V_ENAME VARCHAR2(10);
BEGIN
V_ENAME := 'SCOTT';
DBMS_OUTPUT.PUT_LINE('V_EMPNO : ' || V_EMPNO);
DBMS_OUTPUT.PUT_LINE('V_ENAME : ' || V_EMPNO);
END;
변수 선언과 값 대입
DECLARE
V_DEPT_ROW DEPT%ROWTYPE;
BEGIN
SELECT DEPTNO, DNAME, LOC INTO V_DEPT_ROW
FROM DEPT
WHERE DEPTNO = 40;
DBMS_OUTPUT.PUT_LINE('DEPTNO : ' || V_DEPT_ROW.DEPTNO);
DBMS_OUTPUT.PUT_LINE('DNAME : ' || V_DEPT_ROW.DNAME);
DBMS_OUTPUT.PUT_LINE('LOC : ' || V_DEPT_ROW.LOC);
END;