Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
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
29 30
Archives
Today
Total
관리 메뉴

얼렁뚱땅 우왕좌왕

PL/SQL이란? 장단점 본문

DB

PL/SQL이란? 장단점

뚱땅왕 2024. 7. 15. 15:33

PL/SQL : Procedural Language/SQL
- 서버에서 절차적인 처리를 위해 표준 SQL을 확장한 절차적 언어 
- 블록(block) 구조로 여러 SQL 문을 한번에 실행 
- 모듈화, 캡슐화 가능 

장점 
1. 변수, 비교, 반복, 예외처리, 모듈화 및 캡슐화
2. 서버에 저장되어 빠른 시행 

단점 
1. 문법에 대한 표준이 없다. 
2. 각 DBMS에 종속적 

PL/SQL이 할 수 있는것 
Anonymous block : 단순 스크립터에서 실행되는 블록, 서버에 저장되지 않는다. 
Stored Procedure : 자주 실행되거나, 복잡한 비즈니스 로직을 미리 작성하여 서버에 저장하여 사용한다. 
- User Function : Procedure와 유사하며, 실행결과를 반환한다. 
- Package : 여러 Procedure, Function 및 변수 등을 하나로 묶어 자동으로 실행되게한다. 
- Trigger : 테이블이나 뷰에 INSERT, UPDATE, DELETE등이 수행 전 또는 수행 수 자동 실행되는    Procedure  / 현재 테이블에서 실행함과 동시에 다른 테이블에도 영향을 미친다

구조 
DECLARE : 선언부분
- 변수, 상수, CURSOR 와 USER_DEFINE Exception 등 선언 

BEGIN : Excutable Section(실행 부분)
- 처리할 명령문들을 절차적으로 기술 
- SQL문, 반복문, 조건문
- BEGIN으로 시작, END로 끝남

========================
PL/SQL의 확장요소

DECLARE 지역변수와 커서, 사용자 예외를 선언

:= 
SELECT INTO 변수할당
FETCH INTO

BEGIN ... END 문장의 블록
-- 한라인 주석
/*.....*/ 여러라인 주석

IF ... ELSIF ... END IF 분기문
CASE ... END CASE

WHLE ... END LOOP
LOOP ... END LOOP 반복문
FOR ... END LOOP

EXIT 반복 블록을 빠져나간다

GOTO 처리 순서 변경하기 (빠져나갈때도 사용가능하다)

=============================

변수의 종류

- SCLAR 변수 
 : 데이터 하나만을 저장하는 일반적인 변수

- REFERENCES 변수
 : 해당 테이블의 ROW나 COLUMN의 타입과 크기를 참조하는 변수

- COMPOSITE 변수 
 : PL/SQL에서 사용하는 배열변수 
   RECORD TYPE 
   TABLE TYPE

- BIND 변수
 : 파라미터로 넘겨지는 IN, INOUT에서 사용되는 변수
   리턴되는 값을 전달받기 위해 선언되는 변수 

===============================

변수의 데이터 타입

Sclar 변수에 자주 사용되는 데이터형 
- CHAR[N] : 사이즈를 지정하지 않으면 1
- BINARY_INTEGER : -2147483647에서 2147483647 사이의 정수
- PLS_INTEGER : BINARY_INTEGER 와 같지만 저장공간 및 속도에서 효율적 
- NUMBER[P,S] : P - 전체자리수 , S - 그 중 소수점아래 자리수 

REFERENCES 변수에 사용되는 데이터 타입
- 테이블명.컬럼명%TYPE  
- 테이블명%ROWTYPE

=================================

출력

SET SERVEROUTPUT ON
- DBMS_OUTPUT 결과 값을 화면에 출력하기 위해 환경설정 변수 변경 
- 매 세션마다 초기화 되므로 매번 재설정해야한다.
- DBMS_OUTPUT 은 오라클에서 입, 출력을 위해 제공하는 명령어이다 

DBMS_OUTPUT 패키지는 문자열 출력을 위해 3가지 프로시저를 지원함
PUT_LINE : 문자열을 출력한 후 다음 라인으로 이동.
PUT : 문자열을 출력한 후 대기.
NEW_LINE : 다음 라인으로 이동.

'DB' 카테고리의 다른 글

[ORACLE] 트리거  (0) 2024.07.15
[ORACLE] 프로시져  (0) 2024.07.15
오라클 함수 및 수업 정리  (5) 2024.07.15
sqlplus로 계정 생성하고 권한 부여하기  (0) 2024.07.15
SQL 만들어진 테이블 복사해서 테이블 만들기  (0) 2023.12.30