민토 피라미드에 있는 원칙대로 신규모듈의 매뉴얼을 작성해 보았다.
주제 - SP생성기
A - SP생성기 사용법
Q - 복잡한 코딩 없이 SP생성이 가능한가?
S - EBL의 등장으로 어플리케이션단에서는 자연어 개발이 가능해졌음
C - 그런데 DB단의 SP는 여전히 코딩이 필요함




SP생성기

 

자연어 스크립트인 EBL(E-Business Language)의 등장으로 복잡한 프로그래밍 언어 없이도 비즈니스 논리를 갖춘 어플리케이션을 손쉽게 구현할 수 있게 되었다. 한편 데이터베이스 내부적으로 실행되는 저장 프로시져(Stored Procedure)의 적절한 사용은 고급 어플리케이션에서의 퍼포먼스 향상을 도와주는데 이것은 PL/SQL 문법에 대한 이해가 선행되어야 하는 작업이었다. 이에 PQ빌더의 SP생성기는 EBL로 작성된 비즈니스 논리를 SP로 생성해 줌으로 이러한 문제점을 해결해 준다. DB를 다루는 어플리케이션에서 전문적이고 복잡한 코딩에 대한 의존도는 더욱 낮아졌다.

 

ü  EBL문법

ü  변수선언문

ü  DB처리문을 이용한 반복실행문(커서)

ü  현재날짜시간

ü  그 외의 PL/SQL

 

EBL문법

 

SP생성기에서는 기본적으로 EBL에서 사용하는 다음과 같은 문법들을 사용한다. 대입문, 만일문, 반복문, 흐름제어문, DB처리객체 등 기존에 EBL에서의 핵심적인 표현식을 모두 활용할 수 있다.

 

대입문

사원명은 담당사원명을 참조한다 / 도서ID는 검색도서코드의 일부(0,2)이다

조건실행문

(조건이면) 다음 문단을 실행한다 / 그 외에는 다음 문단을 실행한다

반복실행문

(조건이면) 다음 문단을 반복 실행한다 / 다음 문단을 ...번 반복 실행한다.

흐름제어

반복 실행을 종료한다 / 문단의 처음으로 이동한다

DB처리문

DB처리문(“담당자조회”)를 실행한다

 

변수선언문

 

SP생성기는 사용되는 자료의 유형에 따라 자동으로 변수의 유형을 선언한다. 소수와 정수는 각각의 INT FLOAT으로 설정하고 문자나 명확하지 않은 유형은 CHAR(255)으로 선언된다. 하지만 사용자가 변수의 유형을 임의로 지정해 주고 싶다면 [변수명] [변수유형]으로 정의한다 와 같은 방법으로 선언할 수 있다.

도서ID는 char(2)로 정의한다

적요는 varchar(500)으로 정의한다

 

 

 

 


DB처리문을 이용한 반복실행문(커서)

 

EBL DB처리객체는 실행결과라는 변수에 그 결과를 2차원 배열로 저장한다. 하지만 SP생성기에서는 실행결과를 사용할 수 없다. 레코드가 하나라면 변수연결기를 통해 값을 전달할 수 있지만 둘 이상인 DB처리문은 다음과 같은 방법으로 구현하여야 한다. , DB처리결과를 받을 변수를 문장 앞에 순서대로 기입한다. (, DB처리객체내의 변수연결 기능은 사용하지 말아야 한다.)

대출자대출수량은 DB처리문("도서검색")의 결과를 순서대로 참조하여 다음 문단을 반복 실행한다.

{

    연번은 반복횟수이다.

    총계는 식(총계+대출수량)을 참조한다.

}

 

 

 

 

 

 

 

 


현재날짜시간

 

현재날짜시간은 예약된 SP문법이다. 현재날짜시간 자체로는 시,,초까지 표시된 형태로 값을 넘겨받게 되므로 날짜시간형식을 변환하여 사용할 수도 있다. 날짜시간형식 안에 들어갈 수 있는 형식은 문서의 끝(2)에 첨부하였다.

현재날짜는 현재날짜시간이다. // 2007-10-24 15:49:46.653

현재날짜는 현재날짜시간날짜시간형식("yyyymmdd")으로 변경하여 참조한다. // 20071024

 

 

 

 


그 외의 PL/SQL

 

현재까지 살펴본 것 이외의 PL/SQL문은 다음과 같이 (PQ/SQL…)을 실행한다/ 참조한다를 통해 사용 가능하다.

이 식(DROP TABLE #임시테이블)을 실행한다

인덱스위치는 이 식( PATINDEX('%/%', 도서ID) )을 참조한다

 

 

 

 

 

 

 

 

 

 

 

 


1. EBL SP생성기의 문법

구분

비교

EBL

SP생성기

정의문

SP생성기

 

... ...으로 정의한다

실행

다름

...의 연산식을 계산한다

(...)을 계산한다

대입문

같음

... ...이다

......이다

대입문

같음

... ...을 참조한다.

... ...을 참조한다.

대입문

같음

... (입력란.값을 정수로 변경해서) 참조한다.

... (... ...로 변경해서) 참조한다.

대입문

같음

... ...의 일부(....)를 참조한다.

... ...의 일부(....)를 참조한다.

대입문

같음

... ...를 대입한다.

... ...를 대입한다.

대입문

같음

... ...를 모두 대입한다.

... (... ...로 변경해서) 대입한다.

대입문

같음

... ...으로 설정한다

... ...으로 설정한다

대입문

같음

... ...으로 설정한다

... ...으로 설정한다

실행문

같음

DB처리문(...)을 실행한다.

DB처리문(...)을 실행한다.

실행문

같음

...를 실행한다.

...를 실행한다.

반복문

같음

(조건이면) 다음 문단을 반복 실행한다.

(조건이면) 다음 문단을 반복 실행한다.

반복문

같음

다음 문단을 ...번 반복 실행한다.

다음 문단을 ...번 반복 실행한다.