。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

업무

[ORACLE] PL/SQL

quarrrter 2024. 1. 15. 14:39

PL/SQL(피엘에스큐엘)은 상용 관계형 데이터베이스 시스템인 오라클 DBMS에서 SQL 언어를 확장하기 위해 사용하는 컴퓨터 프로그래밍 언어 중 하나

 

 

다수의 SQL 문을 한 번에 ORACLE DB로 보내서 처리하므로 수행 속도를 향상 시킬 수 있다. 

단순, 복잡한 데이터 형태의 변수를 선언할 수 있고 Execption처리 루틴을 이용할 수 있다. 

로직을 수행할 수 있는 블럭으로 파라미터를 받고, 리턴 가능

 

 

 

구조

(선언부, 실행부, 예외처리부)

DECLARE					// 선언부

plname VARCHAR2(10);
plnumber NUMBER(10);

BEGIN					// 실행부 (SQL 실행 결과 값이 위에서 선언한 변수에 INTO로 저장)
SELECT phonenumber, name INTO plnumber, plname
FROM mbr_table
WHERE mbrno = 100;

END;					//종료
/						//PL/SQL 블록 실행

 

 

1. 선언문 

Declare 문으로 시작하며 블록에서 사용될 변수, 상수, 커서, 예외를 선언하는 섹션으로 필요하지 않으면 생략할 수 있음

 

2. 실행부

Begin 문으로 시작하여 End; 문으로 종료하며 수행될 작업의 몸체이며 생략할 수 없는 필수적 섹션 

  • Select / Update, Insert, Delete
  • IF문
  • Loop문
  • 커서 속성 

 

3. 예외처리부 

End;문 바로 앞에 위치하며 미리 정의된 예외를 추적하고 명시된 조건이 발생할 경우에 취할 작업을 정의하는 선택적 섹션

  • 미리 정의된 예외
  • 사용자 정의 예외
  • Exception 함수(sqlcode, sqlerrm)

 

Declare, Begin, Exception문은 세미콜론이 붙어서는 안 되지만, End 문과 모든 PL/SQL문장은 마지막에 세미콜론 필수! 

 

 

 

 

 

 

종류

  • procedure
    • 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이며, 일련의 작업을 정리한 절차
    • 보통 단독으로 실행해야 할 작업을 위임받았을 때 사용
    • 클라이언트(화면)에서 값을 건네받아 서버에서 작업을 한 뒤 클라이언트에게 전달
  • function
    • 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합
    • 보통 로직을 도와주는 역할이며, 간단한 계산, 수치 등을 나타낼 때 사용
    • 클라이언트(화면)에서 값을 건네 받고 서버에서 필요한 값을 가져와서 클라이언트에서 작업을 하고 반환
  • trigger
    • 지정된 이벤트 발생시 자동적으로 호출되어 실행되는 특수한 형태의 프로시저

 

 

 

 

 

 

변수

identifier [constant] datatype [not null] [:= Default expr];

 

EX>

a_hiredate DATE;

a_month NUMBER(2) NOT NULL := 10;

a_location VARCHARE@(13) := 'gasan';

a_comm CONSTANT NUMBER := 2024;

 

 

=> 두 변수는 서로 다른 block 에서라면 동일 이름을 가질 수 있고, 변수명은 block에서 사용된 테이블 column의 이름과 같아서는 안 된다. 

 

 

*치환 변수 : 입력 프롬프트에서 블록 내부로 직접 값을 전달하는 변수

PL/SQL 블록 내부에서 치환변수 사용시 &변수명 사용 

EX> a_name VARCHAR2(20) := &p_name;

 

'업무' 카테고리의 다른 글

[ORACLE 함수] MERGE INTO  (2) 2024.01.18
[jQuery] wrapper  (0) 2024.01.16
[ORACLE] ORACLE 데이터 타입  (4) 2024.01.15
1주차  (1) 2024.01.11
JQuery  (2) 2024.01.09