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 |