Lee's Grow up

PL/SQL 프로그램의 기본 구조 본문

DB/ORACLE

PL/SQL 프로그램의 기본 구조

효기로그 2019. 9. 5. 10:31
반응형

1. PL/SQL은 블록 구조이다


오라클 PL/SQL은 전형적인 3세대 고급 언어로서 블록 구조를 기본으로 하고 있다.

Result Code

PL/SQL 프로그램의 기본 구조
1
2
3
4
5
6
7
8
9
10
DECLARE
    -- 선언부 ( 옵션 )
    -- : 타입, 상수, 변수, 예외, 커서, 서브프로그램 등의 선언 및 정의
BEGIN
    -- 실행부 ( 필수 )
    -- : LOGIC 처리
EXCEPTION
    -- 예외처리부 ( 옵션 )
    -- : 실행부에서 발생하는 예외 사항 처리
END ;

PL/SQL 프로그램의 기본 구조 예제
1
2
3
4
5
6
7
8
9
DECLARE
    v_str1 VARCHAR2(100) ; -- 변수 선언
    v_str2 VARCHAR2(100) := 'tmp' -- 선언과 동시에 초기화
BEGIN
    v_str1 := 'Hello, world!!';
    DBMS_OUTPUT.PUT_LINE(v_str1); -- 콘솔 출력 명령어
EXCEPTION WHEN OTHERS THEN 
    DBMS_OUTPUT.PUT_LINE(SQLERRM); -- 예외 처리
END;
 

또한 PL/SQL은 블록 구조의 중첩이 가능하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DECLARE
    --...
BEGIN
    --...
    BEGIN
        --...
    END;
    
    BEGIN 
        --...
        BEGIN
            --...
        END;
    END;
EXCEPTION WHEN OTHERS THEN 
    --...
END;

2. 저장 서브프로그램과 익명 PL/SQL


  • 저장 서브프로그램 : 컴파일되어 데이터베이스의 데이터 딕셔너리에 소스 코드와 함께 바이트 코드 형태로 저장되며, 차후에 이름을 식별자로 하여 실행할 수 있다.
  • 익명(Anonymous)PL/SQL : 즉시 실행되며, 데이터베이스의 데이터 딕셔너리에는 저장되지 않는다.
비교 항목 저장 서브프로그램 익명 PL/SQL
실행문의 역할 저장 서브프로그램 컴파일 프로그램 실행
데이터베이스에 저장 여부 데이터 딕셔너리에 저장 저장되지 않음
재사용성 재사용 가능 불가능
상호 사용 가능성 익명 PL/SQL 호출 불가 저장 서브프로그램 호출 가능 ( 트리거제외) 
유형  함수, 프로시저, 패키지, 트리거, 객체타입 익명 PL/SQL 블록
저장 서브프로그램 예제
1
2
3
4
5
6
CREATE OR REPLACE FUNCTION temp ( v_num NUMBER ) 
RETURN NUMBER
IS
BEGIN
    RETURN v_num + v_num;
END;

*저장 서브프로그램에 대해서는 다른 포스팅에서 자세히 다룰 예정이다. 지금은 둘의 차이정도를 구분하기.

반응형
Comments