Oracle Proceduer 생성/실행

Table of contents

  1. Oracle Proceduer 생성/실행
    1. 테이블 생성 및 데이터 추가
      1. 테이블 데이터 확인
      2. 프로시저 작성
      3. 프로시저 실행
      4. SQL 실행계획 보기

오라클에서의 프로시저 생성 방법을 예제로 정리하고자 한다.

테이블 생성 및 데이터 추가

CREATE TABLE pl_student (
     hakbun NUMBER PRIMARY KEY,
     name VARCHAR2(34) NOT NULL, 
     kor NUMBER, eng NUMBER, math NUMBER
    );
INSERT INTO pl_student VALUES(1,'홍길동',90,90,100);
INSERT INTO pl_student VALUES(2,'박문수',85,80,75);

테이블 데이터 확인

프로시저 작성

CREATE OR REPLACE PROCEDURE studentInsert(
    pName pl_student.name%TYPE,
    pKor pl_student.kor%TYPE,
    pEng pl_student.eng%TYPE,
    pMath pl_student.math%TYPE
)
IS
BEGIN
    INSERT INTO pl_student VALUES(
        (SELECT NVL(MAX(hakbun)+1,1) FROM pl_student),
       pName,pKor,pEng,pMath 
    );
    COMMIT;
END;

프로시저 실행

CALL studentInsert('돌쇠',30,97,46);

SQL 실행계획 보기

DBeaver 의 경우는 마우스 오른쪽 클릭 > Excute > Explain Execution Plan 을 클릭한다.

또 다른 방법으로 아래와 같이 확인할 수 있다.

EXPLAIN PLAN -- EXPLANIN  PLAN 선언부
SET STATEMENT_ID = 'PLAN1' INTO PLAN_TABLE -- SQL에 PLAN1이라는 ID 부여
FOR
SELECT * FROM PL_STUDENT ps ;

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY -- PLAN_TABLE에 저장된 실행계획 조회
('PLAN_TABLE','PLAN1','ALL'));