썬글라스가 잘 어울리는 개발고미
DEV on the Beach
썬글라스가 잘 어울리는 개발고미
전체 방문자
오늘
어제
  • 분류 전체보기 (83)
    • 공부 기록노트 (7)
      • React (3)
      • java (15)
      • !오류 (1)
      • html css (1)
      • javascript (11)
      • JSP (4)
      • python (16)
      • network (0)
      • Oracle (6)
      • Git (1)
      • 정보처리기사 (4)
      • plug-in (1)
      • 프로그램 설치 (0)
      • Spring (0)
      • CS (0)
    • 신기술 동향 (0)
    • 맛집 카페 리뷰 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • ArrayList
  • java
  • JSP
  • 리액트
  • Collection Framework
  • 핸드드립
  • 파이썬
  • 제이쿼리
  • 혼공
  • 프로그래머스문제풀이

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
썬글라스가 잘 어울리는 개발고미

DEV on the Beach

공부 기록노트/Oracle

[Oracle] PL/SQL 프로그램 종류와 EXCEPTION

2023. 1. 25. 12:15

PL/SQL 

(Procedural Language extension to SQL)

 - SQL을 확장한 절차적 언어(Procedural Language)이다. 

 - 관계형 데이터베이스에서 사용되는 Oracle의 표준 데이터 엑세스 언어로, 프로시저 생성자를 SQL과 완벽하게 통합한다.

 - 유저 프로세스가 PL/SQL 블록을 보내면, 서버 프로세서는 PL/SQL Engine에서 해당 블록을 받고 SQL과 Procedural를        나눠서 SQL은 SQL Statement Executer로 보낸다.

-  PL/SQL 프로그램의 종류는 크게 Procedure, Function, Trigger 로 나뉘어 진다.

 - 오라클에서 지원하는 프로그래밍 언어의 특성을 수용하여 SQL에서는 사용할수없는 절차적 프로그래밍 기능을 가지고     있어 SQL의 단점을 보완하였다.


1️⃣ PL/SQL 프로그램 종류 5가지

💤외우기꿀팁 :  버스타고가라~

Package

User Function

Stored Procedure

Trigger

Anonymous Block

 

 

2️⃣ EXCEPTION 종류 3가지

PL/SQL에서 Error가 발생하면 Error는 Exception을 발생시켜

해당 블록을 중지하고 예외처리부분으로 이동한다.

예외는 Oracle내부에서 자동으로 발생할 수 있으며 또한 사용자에 의해 직접 발생시킬 수 있다.

 

1. 정의된 Oracle Server Error

  - PL/SQL에서 자주 발생하는 Error를 미리 정의함

  - 선언할 필요가 없으며 서버에서 암시적으로 발생

2. 정의되지 않은 Oracle Server Error

 - 기타 표준 Error

 - 선언을 해야하며 서버에서 암시적으로 발생

3. 사용자 정의 Error

  - 프로그래머가 정한 조건에 만족하지않을 경우 발생

  - 선언을 해야하고, 명시적으로 RAISE문을 사용하여 발생

 

/
SET SERVEROUTPUT ON;
/
DECLARE --변수선언
    --I INT;
    ID VARCHAR2(10);
BEGIN -- TRY 
    SELECT BOOK_ID INTO ID FROM BOOK;  --문제가발생시 EXCEPTION 영역으로 빠진다.
    --I : 자동선언정수형 변수
    FOR I IN 1..30 LOOP --1부터 30까지 반복
        INSERT INTO BOOK(BOOK_ID, TITLE, CATEGORY, PRICE, INSERT_DATE, CONTENT)
        VALUES(
            (SELECT NVL(MAX(BOOK_ID),0) + 1 FROM BOOK),
            '제목'||I,'카테고리'||I,10000,SYSDATE,'내용'||I
        );
    END LOOP;
    COMMIT;
    --정의된 예외
    --정의되지 않은 예외
    --사용자 정의 예외
    EXCEPTION   --CATCH
        WHEN OTHERS THEN
            DBMS_OUTPUT.PUT_LINE('오류 발생 : ' || SQLERRM);  --SYSOUT같은애
END;
/

 

 

'공부 기록노트 > Oracle' 카테고리의 다른 글

[Oracle] Merge_into/ 데이터 삽입과 수정 동시에하기  (0) 2023.02.08
E-R관계 맺기/eXERD 이용하여 논리.물리 다이어그램 작성, 포워드엔지니어링  (0) 2023.02.03
[Oracle] 데이터백업 테이블 생성 및 복합키 변경방법  (0) 2023.01.30
[Database] eXERD 사용해보기(리버스엔지니어링)  (0) 2023.01.30
[Oracle SQL Developer] 계정 생성/ DB접속 방법  (0) 2023.01.08
    '공부 기록노트/Oracle' 카테고리의 다른 글
    • E-R관계 맺기/eXERD 이용하여 논리.물리 다이어그램 작성, 포워드엔지니어링
    • [Oracle] 데이터백업 테이블 생성 및 복합키 변경방법
    • [Database] eXERD 사용해보기(리버스엔지니어링)
    • [Oracle SQL Developer] 계정 생성/ DB접속 방법
    썬글라스가 잘 어울리는 개발고미
    썬글라스가 잘 어울리는 개발고미

    티스토리툴바