PL/SQL

조예빈·2024년 4월 11일
0

Oracle

목록 보기
21/26
post-custom-banner

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;

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러
post-custom-banner

0개의 댓글