PL/SQL(Procedural language/SQL)의 정의
PL/SQL은 오라클에서 제공하는 프로그래밍 언어이며 일반 프로그래밍 언어적인 요소를 다 가지고 있고 데이터베이스 업무를 처리하기 위한 최적화된 언어이다.
SQL은 비절차적(Non-Procedural) 언어이지만 PL/SQL은 SQL을 확장한 절차적(Procedural) 언어이다.
비절차적 언어라는 것은 데이터베이스 사용자(이하 사용자)가 SQL을 사용해 원하는 작업의 결과만 기술하고, 그 작업이 어떻게 수행될 것인지는 전혀 고려하지 않아도 된다는 것을 의미한다.
PL/SQL(Procedural language/SQL)의 종류
PL/SQL의 종류는 크게는 익명블록(anonymous PL/SQL Block)과 저장블록(stored PL/SQL BLock)으로 나뉠 수 있는데 익명블록은 주로 일회성으로 사용할 경우 사용되고 저장블록은 서버에 저장해 놓고 주기적으로 반복해서 사용할 경우 사용된다.
저장블록의 종류는 프로시저, 함수, 패키지, 트리거가 있다.
프로시저(Procedural) : 리턴 값을 하나 이상 가질 수 있는 프로그램을 말한다.
함수(Function) : 리턴 값을 반드시 반환해야 하는 프로그램을 말한다.
패키지(Package) : 하나 이상의 프로시저, 함수, 변수, 예외 등의 묶음을 말한다.
트리거(Trigger) : 지정된 이벤트가 발생하면 자동으로 실행되는 PL/SQL 블록이다.
PL/SQL(Procedural language/SQL)의 기본구조
PL/SQL의 기본구조는 선언부, 실행부, 예외처리부로 나뉠수 있다.
- 선언부(Declare) : 모든 변수나 상수를 선언하는 부분
- 실행부(Executable) : begin ~ end / 제어문, 반복문, 함수정의 등의 로직을 기술하는 부분
- 예외처리부(exception) : 실행도중에 에러 발생시 해결하기 위한 명령들을 기술하는 부분
Declare, begin, exception 키워드들은 ;을 붙이지 않고, 나머지 문장들은 ;으로 처리한다.
PL/SQL의 기본구조는 아래와 같다.
익명블록(anonymous PL/SQL Block) 구조
DECLARE
-- 선언
BEGIN
-- 구현
END;
저장블록(Stored PL/SQL Block) Function 구조
FUNCTION 이름(
) RETURN
IS
-- 선언
BEGIN
-- 구현
END;
DECLARE는 예약어이기 때문에 ;을 붙이지 않는다.
END에는 ;을 붙여서 프로시저의 끝을 알려준다.
예외처리는 생락가능하다.
PL/SQL(Procedural language/SQL) 예제 실습
DECLARE cnt integer; BEGIN cnt := cnt+1; if cnt is null then dbms_output.put_line('결과 : cnt는 널이다'); end if; END; | cs |
출력결과
결과 : cnt는 널이다
다른 언어와는 다르게 할당 연산자가 "=" 이 아니라 ":=" 임을 명심해야 한다.
인프런 강의/오라클 데이터베이스 11g 프로그래밍(하)
'Project > iRT' 카테고리의 다른 글
[Oracle] Oracle 19c 클라이언트(Client)다운방법 (2) | 2020.02.10 |
---|---|
[AWS] RDS 테이블스페이스(Table Space) 확장 , 여유공간및 자동확장여부조회 방법 (0) | 2020.01.10 |
[Oracle] Package내에 프로시저(Procedure)와 함수(Function) 실행방법 (0) | 2019.10.23 |
[Oracle] DB Link설정하는 방법과 오류(ORA-12154) 해결 (2) | 2019.08.22 |
[AWS] RDS Oralce 11g 데이터베이스 생성방법 (0) | 2019.08.14 |