1. 프로시저
1. 프로시저(Procedure)의 개념
- SQL를 이용해 생성된 데이터를 조작하는 프로그램이다.
- 데이터베이스 내부에 저장되고 일정한 조건이 되면 자동으로 수행된다.(외부입력, 특정 시간 등)
2. 절차형 데이터 조작 프로시저
- 절차형 데이터 조작 프로시저를 Oracle PL/SQL 기반으로 설명한다.
1. Oracle 기반 PL/SQL 개념
- 표준 SQL을 기본으로 Oracle에서 개발한 데이터 조작 언어이다.
- Oracle 기반의 모든 프로시저 작성에 사용되며 표준 SQL의 확장 기능이 우수하다.
2. PL/SQL의 장점
- PL/SQL의 장점으로는 컴파일 불필요, 모듈화 가능, 절차적 언어사용, 에러처리 등이 있다.
- 컴파일 불필요 : 컴파일(Compile) 없이 스크립트(Script)생성 및 변경 후 실행 가능
- 모듈화 가능 : 블록 내에서 논리적으로 관련된 문장 그룹화 가능, 복잡한 문제에 대해 나눠진 모듈 집합으로 구성
- 절차적 언어 사용 : 데이터베이스의 테이블과 레코드(Record)를 기반으로 하는 동적 변수 선언 가능,단일형 데이터 타입과 복합형 데이터 타입 선언 가능
- 에러처리 : 예외처리(Exception)처리 루틴(Routine)을 이용한 에러 처리가능
3. PL/SQL의 구성
- PL/SQL은 프로그램을 논리적인 블록으로 나누게 하는 블록구조로 구성된다.
PL/SQL 구성
- 선언부(Declare) : 실행부에서 참조할 모든 변수, 상수, CURSOR, EXCEPTION을 선언
- 실행부(Begin/End) : BEGIN과 END 사이에 기술되는 영역, 데이터를 처리할 SQL문과 PL/SQL 블록을 기술
- 예외부(Exception) : 실행ㅇ부에서 에러가 발생했을 때 문장 기술
4. PL/SQL을 활용한 저장형 객체 활용
- 저장형 객체로 저장된 함수, 저장된 프로시저, 저장된 패키지, 트리거가 있다.
[저장된 프리시저 (Stored Procedure)]
- 작성한 PL/SQL을 저장해 놓고 피료한 경우 호출
- 매개 변수를 받을 수 있고, 반복적으로 사용할 수 있는 객체
- 배치작업, 복잡한 트랜잭션을 수행하는 PL/SQL문을 DB에 저장할 수 있도록 기능 제공
- CREATE OR REPLACE 구문을 사용
[저장된 함수 (Stored Function)]
- 저장 프로시저와 용도는 비슷하나, 실행결과를 되돌려 받을 수 있음
- 값을 계산하고 결괏값을 반환하기 위해 사용
- 반드시 반환될 값의 데이터 타입을 Return 문에 선언해야 한다.
- PL/SQL 블록 내에서 Return 문을 통해서 반환해야 하낟.
[저장된 패키지 (Stored Package)]
- 프로시저나 함수를 효율적으로 관리하기 위해 패키지 단위로 배포할 때 ㅅ용
- 패키지는 선언부와 본문으로 구성
- 선언부 : 프로시저 또는 함수 헤더 부분만 작성되며, 선언한 모든 요소들은 패키지 전체에 적용
- 본문 : 선언부에서 선언된 하수 헤더를 구현하는 부분으로, 실제 내용에 해당
[트리거 Trigger]
- 특정 테이블에 삽입, 수정, 삭제 등의 데이터 변경 이벤트가 발생 시 DBMS에서 자동적으로 실행되도록 구현된 프로그램
- 트리거는 테이블과는 별도로 데이터베이스에 저장
- 트리거는 뷰가 아닌 테이블에 관해서만 정의될 수 있음
- DBMS_ OUTPUT.PUT_LINEIN을 출력하기 위해 'set serveroutput on'을 사용
2. 프로그램 디버깅
1.프로그램 디버깅(Program Debugging)의 개념
- 프로시저가 입력 자료를 받아 출력을 올바르게 도출하는지에 관한 확인 과정이다.
- 데이터베이스 프로시저에 대한 검증 작업을 프로그램 디버깅이라 한다.
2.프로그램 디버깅 도구
- 프로시저의 디버깅을 위해 SQL*Plus라는 도구를 이용한다.
- SQL*PLUS는 SQL을 DBMS 서버에 전송하여 처리할 수 있도록 하는 Oracle에서 제공하는 도구이다.
- 주요 명령어로는 파일 명령어, 편집 명령어, 실행 명령어, 환경 명령어, 형식 명령어, 대화 명령어 등이 있다.
3. 단위 테스트 도구
1. 단위 테스트 도구의 개념
- 구현된 프로시저의 적합성을 확인하기 위한 방법을 제공하는 도구이다.
- Oracle DBMS는 모든 데이터 조작 프로시저에 대한 테스트 환경으로 SQL*Plus 기반의 PL/SQL을 활용한다.
2. PL/SQL 테스트
1. DBMS_OUTPUT 패키지 활용
- 메시지를 버퍼에 저장하고 버퍼로부터 메시지를 읽어오기 위한 패키지 DBMS_OUTPUT
2.DBMS_OUTPUT 패키지 활용 사례
- 'emp' 테이블에서 직원번호, 직원이름, 급여 정보를 출력하는 패키지 활용 사례이다.
[DBMS_OUTPUT]
- DBMS_OUTPUT.DISABLE : 메시지 버퍼 내용 삭제
- DBMS_OUTPUT.ENABLE : 메시지 버퍼 내용 할당
- DBMS_OUTPUT.PUT : 메시지의 마지막 라인 끝에 신규라인 문자(EOL)가 추가
- DBMS_OUTPUT.GET_LINE : 한 번 호출할 댸마다 하나의 라인만을 읽어옴
- DBMS_OUTPUT.GET_LINES : 지정된 라인을 모두 읽어옴