다중 데이터베이스 테이블에 액세스

동일한 데이터베이스에서 작성한 다중 테이블을 참조할 수 있습니다. 두 개의 테이블에서 데이터를 조인하려면 SELECT문에서 FROM절을 사용하십시오.

다음 예에서는 USERTABLE1 및 USERTABLE2라는 두 개의 데이터베이스 테이블이 있다고 가정합니다. 테이블 둘다에 두 개의 char(6) 데이터 유형 열(또는 이와 동등한 것)이 있습니다.

USERTABLE1은 두 개의 행을 포함합니다.

  Column1 Column2
행 1 value1 value2
행 2 value3 value4

USERTABLE2는 두 개의 행을 포함합니다.

  Column3 Column4
행 1 value5 value6
행 2 value7 value8

단일 SELECT 함수에서 참조된 모든 테이블은 동일한 데이터베이스에 있어야 합니다. 데이터베이스는 디폴트(노드의 "데이터 소스" 등록 정보에 지정한) 또는 다른 데이터베이스(SELECT 함수의 FROM 절에 지정한)일 수 있습니다.

테이블을 정의한 데이터베이스를 식별하도록 사용 중인 Compute, Filter 또는 Database 노드를 구성하십시오. 예를 들면, 디폴트 데이터베이스를 사용 중인 경우, 노드를 마우스 오른쪽 단추로 누르고 ESQL 열기를 선택한 후 이 노드의 모듈에서 다음과 같은 ESQL문을 코딩하십시오.

SET OutputRoot.XML.Test.Result[] =
                  (SELECT A.Column1 AS FirstColumn,
                                  A.Column2 AS SecondColumn,
                                  B.Column3 AS ThirdColumn,
                                  B.Column4 AS FourthColumn
                        FROM Database.USERTABLE1 AS A,
                                  Database.USERTABLE2 AS B
                      WHERE A.Column1 = 'value1' AND
                                  B.Column4 = 'value8'
         ); 

출력 메시지 컨텐츠는 다음과 같습니다.

<Test>
  <Result>
    <FirstColumn>value1</FirstColumn>
    <SecondColumn>value2</SecondColumn>
    <ThirdColumn>value7</ThirdColumn>
    <FourthColumn>value8</FourthColumn>
  </Result>
</Test>

위의 예는 두 데이터베이스 테이블에서 데이터에 액세스하는 방법을 표시합니다. 다중 데이터베이스 테이블에 액세스할 수 있도록 보다 복잡한 FROM 절을 코딩할 수 있습니다(모든 테이블이 동일한 데이터베이스에 있어야 하더라도). 하나 이상의 메시지 트리를 참조할 수도 있고, SELECT를 사용하여 테이블과 테이블, 메시지와 메시지, 테이블과 메시지를 결합시킬 수 있습니다. XML 메시지 및 데이터베이스 테이블에서 데이터 조인은 데이터베이스 테이블에서 메시지 데이터를 데이터와 병합하는 방법에 대한 예를 제공합니다.

(노드의 데이터 소스 등록 정보로 지정됨).

WHERE 절의 열 ID에 ESQL 함수 또는 프로시저를 지정하는 경우, ESQL이 아닌 데이터베이스 조회의 일부로 처리됩니다.

다음의 예를 고려해 보십시오.

  SET OutputRoot.XML.Test.Result = 
          THE(SELECT ITEM T.Column1 FROM Database.USERTABLE1 AS T 
     WHERE UPPER(T.Column2) = 'VALUE2');

대문자로 변환된 Column2의 값이 VALUE2인 행을 리턴하려고 시도합니다. 그러나 데이터베이스 관리자만이 주어진 행에 대해 T.Column2 값을 판별할 수 있으므로 데이터베이스 WHERE절이 메시지 플로우에 리턴된 행을 판별하기 때문에 데이터베이스 쿼리가 발행되기 전에 ESQL에 의해 처리될 수 없습니다.

따라서 UPPER는 처리의 일부로 포함되도록 데이터베이스 관리자로 전달됩니다. 그러나 데이터베이스 관리자가 SELECT문 내의 토큰을 처리할 수 없는 경우 오류가 리턴됩니다.

관련 개념
메시지 플로우 개요
ESQL 개요
메시지 모델링
관련 태스크
메시지 플로우 설계
메시지 플로우 컨텐츠 정의
ESQL 파일 관리
XML 메시지 및 데이터베이스 테이블에서 데이터 조인
관련 참조
Compute 노드
Database 노드
Filter 노드
ESQL 참조
SELECT 함수
SET문
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ak05830_