⁂ Oracle DB/: 기본 익히기

[Oracle] #6-4 프로시져(PL/SQL (Procedural Language))

김갱환 2022. 8. 30. 15:19

1. PL/SQL?

 

 프로시져란 DB 안에서 좀 더 다이나믹하게 데이터를 다루게 도와주는 기능이다.

 프로시져는 절차적인 데이터베이스 프로그래밍 언어이며 변수, 조건문, 반복문을 더 다양하게 사용할 수 있게 해준다.

 (본격적으로 DB로 프로그래밍 하기..)

 

 더 깊숙하고 고급적인 단계를 배우려하지 않으려 한다.

 기본적인 개념만 잡고 가려하니 어렵게 생각하지 않고 접근해보자.

 

 우선 프로시져를 사용하기 위해선 콘솔창에 출력시키기 위한 아래의 사전 코드가 필요하다.

set serveroutput on;

 

 

2. PL/SQL 기본 문법

1) 변수 선언

 declare -- create는 저장
    -- 변수 선언
    a number := 3;
    b number := 5;
 begin
    -- 콘솔창 출력
    dbms_output.put_line('* 실행 결과 *');
    dbms_output.put_line(a);
    dbms_output.put_line(b);
    dbms_output.put_line(a+b);
    dbms_output.put_line(a || '+' || b || '=' || (a+b) );
 end;

 세미콜론은 무시하고 declare부터 end까지 전체 영역을 잡아서 run을 시키면 출력창에 반영된다.



2) 조건문

 declare
    -- 성적 프로그램
    uname   varchar2(50) := '무궁화';
    kor     number := 100;
    eng     number := 95;
    mat     number := 80;
    aver    number := (kor+eng+mat)/3;
    grade   varchar2(10) := NULL;

 begin
    if aver>=90 then grade:='A';
    elsif aver>=80 then grade:='B';
    elsif aver>=80 then grade:='C';
    elsif aver>=80 then grade:='D';
    else grade:='F';
    end if;

    -- 출력
    dbms_output.put_line('* 실행 결과 *');
    dbms_output.put_line('이름 : ' || uname);
    dbms_output.put_line('국어 : ' || kor);
    dbms_output.put_line('영어 : ' || eng);
    dbms_output.put_line('수학 : ' || mat);
    dbms_output.put_line('평균 : ' || round(aver,2));
    dbms_output.put_line('학점 : ' || grade);
    
 end;




3) 반복문

declare
    -- 구구단 출력
    dan number := 4;
    i   number default 0;
    
begin
    while i<10 loop
        i:=i+1;
        exit when i=10;
        dbms_output.put_line(dan || '*' || i || '=' || (dan*i));
    end loop;
    
end;

 

 

 

3. 프로시저 생성, 삭제, 호출

1) 프로시저 생성
형식) create or replace  procedure 프로시저명

-- sp_test 프로시저 생성
create or replace procedure sp_test
is
begin
    dbms_output.put_line('sp_test 프로시저 호출');
end;



2) 프로시저 호출
형식) execute 프로시저명



3) 프로시저 삭제
형식) drop  procedure 프로시저명