PL/SQL 이란?

IT/개발공부 / / 2020. 8. 27. 23:00
728x90
반응형

PLSQL은 오라클 DBMS에서 SQL 언어를 확장하기 위해 사용하는 컴퓨터 프로그래밍 언어입니다. SQL은 구조화된 질의 언어입니다. 하지만 만약에 ' 주민등록번호 검증 로직 ' 이와 같은 질의가 필요하면 SQL로 처리하기 불가능하기 때문에 이러한 문제를 해결해 주기 위한 문법이 PL/SQL입니다.

 

PL/SQL은 Procedural language extension to Structured Query Language(SQL)의 약자입니다.

'SQL을 확장한 순차적 처리 언어" 라고 생각하시면 됩니다. PL/SQL은 데이터 베이스 질의어인 SQL과 일반 프로그래밍 언어의 특성을 결합한 언어로써 Oracle6 버전부터 등장했습니다.

 

PL/SQL의 기본 구조

기본 단위는 블록(block), 하나의 블록은 세 부분으로 구분됩니다.

선언부 : 실행부에서 사용할 변수나 상수를 선언하는 부분입니다.

- 변수와 상수를 선언할 수 있습니다.

- DECLARE 을 사용해서 나타냅니다.

 

실행부 : 실제 처리할 로직을 담당하는 부분입니다.

- 선언된 변수에 값을 할당합니다.

- IF 나 WHILE 같은 문장을 사용합니다.

- SQL 문장들을 사용합니다.

- PL/SQL에서 엔진 역할을 담당하는 부분입니다.

- 여러 개의 SQL문장을 순차적으로 처리 할 수 있습니다.
- BEGIN으로 시작되어 END로 끝이납니다.

 

예외처리부 : 실행부에서 발생할 수 있는 각종 오류들을 처리하는 부분입니다.

- Oracle은 오류 발생시 자동으로 ORA-XXX 오류 번호와 함께 메세지가 리턴됩니다.

- 사용자가 직접 이러한 메세지를 대체하거나 오류가 발생할 경우 처리할 로직을 기술할 부분입니다.

- EXCEPTION 키워드를 사용합니다.

 

PL/SQL의 실행

SQL *Plus, SQL DEVELOPER, TOAD, 오렌지 등의 툴에서 모두 사용 가능합니다.

DECLARE
 counter INTEGER;
BEGIN
 Counter := counter +1;
 IF counter IS NULL THEN
  Dbms_output.put_line('Result : COUNTER IS NULL');
 END IF;
END;

선언부에서 counter 라는 INTEGER형 변수를 사용했습니다

변수 할당시에는 '=' 이 아닌 ':=' 을 사용합니다.

EXCEPTION은 생략 가능합니다.

 

함수

함수 구문 형식 이해

CREATE OR REPLACE FUNCTION 함수명 ( 파라미터1 데이터타입 , 파라미어2 데이터타입 )


RETURN 데이터 타입 IS [AS]

   변수선언
BEGIN
   처리내용
   
 RETURN 리턴값;
END;

CREATE OR REPLACE FUNCTION : 뷰를 생성할 때와 같이 CREATE OR REPLACE를 사용하여서 기존에 작성된 함수를 수정할 경우 별도로 DROP 시키지 않아도 됩니다.

함수명 : 생성할 함수명을 명시합니다.

파라미터 : 함수의 파라미터로 오는 파라미터 이름과 데이터 타입을 명시합니다.

RETURN : 변환할 데이터 타입을 명시합니다.

BEGIN...END : 함수가 처리할 내용을 명시하며, 맨 마지막에 함수가 변환할 값을 RETURN 다음에 명시합니다.

 

프로시저

프로시저는 특정한 처리를 수행하는 PL/SQL 서브 프로그램입니다. 함수와 마찬가지로 데이터베이스에 저장된 객체입니다 따라서 내장프로시저라고도 합니다. 파라미터들을 받아 특정 처리를 수행하기는 하지만, 함수와 달리 값을 반환하지 않습니다.

 

프로시저 구문 형식의 이해

CREATE OR REPLACE PROCEDURE 프로시저명(파라미터1 데이터타입 [IN|OUT|INOUT] )


IS[AS]
 변수 선언부;

BEGIN
 프로시저 본문처리;
 
EXCEPTION
 예외처리;

END;

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기