Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 공부
- JPA
- 에러
- study
- 독서
- Oracle
- 디자인패턴
- 인프런
- spring
- 독서리뷰
- Design Pattern
- javascript
- 인코딩
- Eclipse
- 후기
- 카카오톡1차
- 우아한테크코스
- 오라클
- 이펙티브자바
- 알고리즘
- 매핑
- 인강리뷰
- math
- 회고
- Java
- Head First Design Pattern
- Singleton
- 람다
- 자바
- 프로그래머스
Archives
- Today
- Total
Lee's Grow up
PL/SQL 프로그램의 기본 구조 본문
반응형
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;
|
*저장 서브프로그램에 대해서는 다른 포스팅에서 자세히 다룰 예정이다. 지금은 둘의 차이정도를 구분하기.
반응형
'DB > ORACLE' 카테고리의 다른 글
[오라클/ORACLE] 형변환 CAST 연산자 , TO_XXXX 함수 ( TO_NUMBER, TO_DATE, TO_CHAR ) (1) | 2019.09.10 |
---|---|
[오라클/ORACLE] 몬테카를로 방법(Monte Carlo method)을 통한 PI(원주율,파이) 계산 쿼리(QUERY) (1) | 2019.09.06 |
[오라클/ORACLE] NULL ( 널 ) 의 개념 / 널이란 ? NULL 이란 (0) | 2019.09.06 |
[오라클/ORALCE] 쿼리(QUERY)로 달력(CALENDAR) 그리기 (0) | 2019.09.05 |
PL/SQL 개요 (0) | 2019.09.05 |
Comments