PL/SQL 특징, PL/SQL 구조, PL/SQL 기본 문법(Syntax)

CODEDRAGON Development/Database

반응형


 

 

PL/SQL

·       PL/SQL 특징

·       PL/SQL 구조

·       PL/SQL 기본 문법(Syntax)

 

 

PL/SQL 특징

·       Oracle PL/SQL Block 구조로 되어있고 Block 내에는 DML 문장과 QUERY 문장, 그리고 절차형 언어(IF, LOOP) 등을 사용할 수 있으며, 절차적 프로그래밍을 가능하게 하는 트랜잭션 언어입니다. 이런 PL/SQL을이용하여 다양한 저장 모듈(Stored Module)을 개발할 수 있습니다.

·       저장 모듈(Stored Module)이란 PL/SQL 문장을 데이터베이스 서버에 저장하여 사용자와 애플리케이션 사이에서 공유할 수 있도록 만든 일종의 SQL 컴포넌트 프로그램이며, 독립적으로 실행되거나 다른 프로그램으로부터 실행될 수 있는 완전한 실행 프로그램입니다.

·       Oracle의 저장 모듈에는 Procedure, User Defined Function, Trigger가 있습니다.

·       PL/SQL Block 구조로 되어있어 각 기능별로 모듈화가 가능합니다.

·       변수, 상수 등을 선언하여 SQL 문장간 값을 교환합니다.

·       IF, LOOP 등의 절차형 언어를 사용하여 절차적인 프로그램이 가능하도록 합니다.

·       DBMS 정의 에러나 사용자 정의 에러를 정의하여 사용할 수 있습니다.

·       PL/SQL Oracle에 내장되어 있으므로 Oracle PL/SQL을 지원하는 어떤 서버로도 프로그램을 옮길 수 있습니다.

·       PL/SQL은 응용 프로그램의 성능을 향상시킵니다.

·       PL/SQL은 여러 SQL 문장을 Block으로 묶고 한 번에 Block 전부를 서버로 보내기 때문에 통신량을 감소시킬 수 있습니다.

 

 

PL/SQL 구조

 

 

PL/SQL 의 구조도(SQL cursor의 흐름)


 

DECLARE

·       필수

·       BEGIN ~ END 절에서 사용될 변수와 인수에 대한 정의 및 데이터 타입을 선언하는 선언부.

·       선언: 인수 및 상수등 정의 및 데이터 타입 선언.

BEGIN ~ END

·       필수

·       개발자가 처리하고자 하는 SQL 문과 여러 가지 비교문, 제어문을 이용하여 필요한 로직을 처리하는 실행부.

·       실행: 목적한 SQL실행 및 필요로직

EXCEPTION

·       선택

·       BEGIN ~ END 절에서 실행되는 SQL 문이 실행될 때 에러가 발생하면 그 에러를 어떻게 처리할 것이지를  정의하는 예외 처리부.

·       에러처리: 실행 중 발생하는 에러 처리

 

 

 

PL/SQL 기본 문법(Syntax)

앞으로 살펴볼 User Defined Function이나 Trigger의 생성 방법이나 사용 목적은 다르지만 기본적인 문법은 비슷하기 때문에 여기에서는 Stored Procedure를 통해서 PL/SQL에 대한 기본적인 문법을 정리합니다.

 

DROP Procedure

·       CREATE TABLE 명령어로 테이블을 생성하듯 CREATE 명령어로 데이터베이스내에 프로시저를 생성할 수 있습니다.

·       생성 프로시저는 데이터베이스 내에 저장합니다.

·       프로시저는 개발자가 필요할 때 호출하여 실행할 수 있습니다.

·       'OR REPLACE'절은 데이터베이스 내에 같은 이름의 프로시저가 있을 경우, 기존의 프로시저를 무시하고 새로운 내용으로 덮어쓰기 하겠다는 의미입니다.

·       Argument는 프로시저가 호출될 때 프로시저 안으로 어떤값이 들어오거나 혹은 프로시저에서 처리한 결과값을 운영 체제로 리턴시킬 매개 변수를 지정할 때 사용합니다.

·       'mode'부분에 지정할 수 있는 매개 변수의 유형은 크게 세가지가 있습니다.

o   운영 체제에서 프로시저로 전달될 변수의 MODE IN

o   프로시저에서 처리된 결과가 운영체제로 전달되는 MODE OUT

o   IN OUT 두 가지의 기능을 동시에 수행하는 INOUT MODE.

·       '/'는 데이터베이스에게 프로시저를 컴파일하라는 명령어입니다.