오라클 PL/SLQ이란? PLSQL개요, 작성방법, 기본문법, declare, 자바학원, 오라클학원, 오라클동영상, JAVA학원, ORACLE학원
http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=705
ojc.asia
오라클 PL/SLQ이란? PLSQL개요, 작성방법, 기본문법, declare오라클 PL/SQLPL/SQL 이란?작성방법, 기본문법, 예제강의 : 이종철PL/SQL 이란?PL/SQL은 PROCEDUAL LANGUAGE/SQL의 약어로 “SQL 구문을 절차적인 형태로 프로그래밍 할 수 있게 한 SQL의 확장” 입니다.PL/SQL은 BEGIN~END 사이에 PL…
ojc.asia
오라클 PL/SLQ이란? PLSQL개요, 작성방법, 기본문법, declare
오라클 PL/SQL
PL/SQL 이란?
작성방법, 기본문법, 예제
강의 : 이종철
PL/SQL 이란?
- PL/SQL은 PROCEDUAL LANGUAGE/SQL의 약어로 “SQL 구문을 절차적인 형태로 프로그래밍 할 수 있게 한 SQL의 확장” 입니다.
- PL/SQL은 BEGIN~END 사이에 PL/SQL 코드를 기술하여 비지니스 로직 처리를 하는데 DML문, 절차적 언어의 IF문과 같은 제어문, 반복문(LOOP~END LOOP) 등을 사용하여 SQL을 이용하여 프로그래밍이 가능하도록 한 것입니다.
- PL/SQL은 DECLARE로 선언되는 익명 블록과, 값을 반드시 리턴하는 함수(FUNCTION), 실행만 하는 프로시저(PROCEDURE), 트리거링 이벤트에 의해 자동 실행되는 프로시저인 트리거(Trigger), 비슷한 기능을 하는 함수, 프로시저를 묶어 놓은 패키지 등이 있습니다.
- 익명 블럭은 오라클 서버에서 컴파일되어 SGA의 SHARED POOL에 위치시키지만 소스코드와 컴파일된 코드를 별도로 저장하지는 않습니다.
- 함수나 프로시저, 패키지, 트리거는 STORED PROGRAM 이라 하며 데이터베이스 SCHEMA OBJECTS로 저장되고 호출되어 실행된다.
- PL/SQL로 작성된 구문중 절차적 언어와 같은 구문, PL/SQL 기본문법구문은 PROCEDUAL STATEMENT EXECUTOR에서 실행하고 SQL구문은 SQL STATEMENT EXECUTOR에서 실행 합니다.
- PL/SQL 프로그램은 오라클 서버에서 컴파일 되고 저장되며, 클라이언트에 의해 호출되어 실행 됩니다
PL/SQL 장점
- BEGIN~END와 같은 블록 구조를 가지므로 블록 안의 여러 SQL 구문이 한번에 서버로 전송되므로 수행속도가 향상되고 통신량도 줄일 수 있습니다.
- 블록안에 또 다른 블록을 포함하는 형태로 코드를 모듈화 할 수 있습니다.
- 단일형 데이터 타입(SCALAR DATA TYPE), 복합데이터 타입(COMPOSITE DATA TYPE), 상수 등 여러 형태의 변수 선언이 가능하다.
- 테이블의 컬럼을 참조하는 동적 변수를 정의 할 수 있습니다.(%TYPE, %ROWTYPE)
- IF문과 같은 조건문을 사용할 수 있습니다.
- LOOP~END LOOP, FOR..LOOP~END LOOP, WHILE .. LOOP~END LOOP와 같은 반복문을 사용할 수 있습니다.
- Exception절을 이용하여 프로그래밍 언어처럼 예외(오류)를 처리 할 수 있으며 사용자 정의 예외의 사용도 가능 합니다.
PL/SQL 작성방법
- 명령문의 종료는 세미콜론(;) 입니다.
- CREATE 구문을 사용했다면 실행을 위해 마지막에 슬래시(‘/’)가 필요 합니다.
- 익명의 블록을 만들기 위해서는 DECLARE 구문으로, 이름있는 블록을 만들기 위해서는 CREATE 구문을 사용해야 합니다.
- 하나의 BEGIN에 대응되는 END 구문은 하나이며 세미콜론(;)으로 끝나야 하고, END 다음에 CREATE 구문에서 사용된 함수나 프로시저의 이름을 써줘도 된다.
create procedure A as … begin … end A; / |
- Declare로 선언된 익명블록인 경우 컴파일시 에러가 발생하면 에러 코드/메시지를 하단에 보여주지만 CREATE로 시작하는 함수나 프로시저는 오류 발생시 SHOW ERRORS(ERROR)로 확인해야 한다.
SQL> SHOW ERRORS
LINE/COL ERROR
------------- ----------------------------------------------------------------
10/13 PL/SQL: SQL Statement ignored
11/10 PLS-00201: ‘EMP.SAL' …..
PL/SQL 블록 구조
DECLARE Variable declaration BEGIN Program Execution …… EXCEPTION Exception handling …… END; |
[PL/SQL 블록 구조]
- Declare절 : 선언부로써 필수는 아님, 변수 or 커서 등을 선언한다. 이름을 정의하고 재 사용할 PL/SQL 블록을 만들기 위해서는 CREATE구문을 사용해야 합니다.
- 변수선언예
goodsNo NUMBER(4);
isLogin BOOLEAN;
ename VARCHAR2(20);
- 커서 선언 예
Declare
Cursor cEmp is select empno, ename from emp where deptno = 10;
Begin
……
End;
/
- Begin ~ End절 : 필수 요소이며 절차적 언어의 특징 및 SQL을 사용하여 비즈니스 로직을 구현 합니다.
- Exception절 : 예외처리절(프로그래밍 언어의 CATCH구문) 입니다.
[PL/SQL 예문1]
-- FOR LOOP예제
SQL> SET SERVEROUTPUT ON
SQL> DECLARE
BEGIN
FOR x IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(x);
END LOOP;
END;
/
1
…
10
-- FOR LOOP예제(REVERSE)
SQL> DECLARE
BEGIN
FOR x IN REVERSE 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(x);
END LOOP;
END;
/
10
9
…
#PL/SLQ이란, #PLSQL, #PLSQL개요, #PLSQL작성방법, #PLSQL기본문범, #오라클, #오라클교육, #오라클학원, #오라클동영상, #ORACLE교육, #ORACLE학원, #ORACLE동영상, PL/SLQ이란, PLSQL, PLSQL개요, PLSQL작성방법, PLSQL기본문범, 오라클, 오라클교육, 오라클학원, 오라클동영상, ORACLE교육, ORACLE학원, ORACLE동영상,