바닥코딩

PL/SQL에서 일반 SQL 실행 본문

데이터 베이스/오라클 PLSQL

PL/SQL에서 일반 SQL 실행

개발공부개발공부 2021. 2. 25. 15:22

  PL/SQL의 궁극적인 목표는 SQL의 한계를 극복하는 것이지만 가장 중요한 것은 SQL을 실행시키는 기능이 가장 중요합니다. 결국 SQL을 보조하기 위해 만들어진 언어기 떄문에 PL/SQL에 내 SQL 처리 기능을 매우 강력하고, 기본 SQL을 수행할 수 있어야 올바른 활용이라 할 수 있습니다. SQL에서 가장 많이 쓰이는 SELECT, INSERT , UPDATE, DELETE 문 등을 통해 알아보겠습니다.

  SELECT 

create or replace procedure fn_SalRate
is
    v_ename emp.ENAME%type; - --EMP 테이블의 타입 복사
    v_empno emp.EMPNO%type;
    v_rate number := 1.1;
    v_sal number;
begin
    v_empno := 7788; -- 조건으로 사용될 변수
        SELECT ename , (sal + comm)*v_rate into v_ename, v_sal
        from emp
        where empno = v_empno ;   -- SQL 문에 PL/SQL Q변수 사용
    DBMS_OUTPUT.PUT_LINE( v_ename);
end;

   위와 같이 SQL 문을 사용할 수 있는데 해당 예제는 실행 결과를 확인해보기 위해 프로시저로 구현 해봤습니다.  해당 결과는 아래와 같습니다.

INSERT

create or replace procedure fn_InsertEmp
is
  v_empno EMP.EMPNO%TYPE;
  v_ename EMP.ENAME%TYPE;
  v_deptno EMP.DEPTNO%TYPE;
begin
    v_empno := 9000;
    v_ename:= '홍길동';
    v_deptno := 40;

    insert into emp (empno, ename , hiredate, DEPTNO)
    values  (v_empno, v_ename, sysdate , v_deptno);
    DBMS_OUTPUT.PUT_LINE('insert  건수 :' || SQL%rowcount);
    commit;
end;

 INSERT 문과 같은경우  EMP 테이블에 타입을 앵커로 받은 각각의 3변수를 원하는 값을 할당해 쿼리를 수행 해보았습니다.  해당 프로시저를 만들고 수행하면 아래와 같이 INSERT  쿼리가 정상적으로 수행된것을 확인 할 수 있습니다.

 

UPDATE

create or replace procedure  updateEmp_proc
is
begin
   update emp
       set DEPTNO = 30
    where EMPNO =9000;
    DBMS_OUTPUT.PUT_LINE('update 건수 :' || SQL%rowcount);
end;

  바로 이전 INSERT 했던 로우의 DEPTNO를 30으로 업데이트 해보겠습니다 해당 프로시저를 수행하면 

DEPTNO가 30으로 바뀐 것으 확인 할 수 있습니다.

DELETE

create procedure DeleteEmp
is
 v_empno emp.empno%type := '9000';
begin
    delete  from emp
    where empno = v_empno;
    dbms_output.PUT_LINE('delete 건수 :'||sql%rowcount);
    commit;
end;

 DELETE 쿼리도 위와 같이 수행이 가능합니다.

'데이터 베이스 > 오라클 PLSQL' 카테고리의 다른 글

순환문  (0) 2021.02.25
분기문  (0) 2021.02.25
변수, 상수 선언 방법  (0) 2021.02.25
앵커(%) 의 활용  (0) 2021.02.25
PL/SQL의 기본 구조  (0) 2021.02.25