데이터베이스 테이블에서 대상 요소 맵핑

데이터베이스 테이블에서 대상을 맵핑하려면 Mapping 노드를 다음과 같이 설정하십시오.
  • 데이터베이스에서 관련 행 검색
  • 데이터베이스의 값으로 메시지 대상 요소 채우기
소스에 데이터베이스 추가에 설명되어 있듯이 데이터베이스를 맵핑 소스로서 추가하는 방법은 여러가지가 있습니다. 데이터베이스를 맵핑에 추가한 다음 스프레드 시트의 맵 스크립트 열에 $db:select 입력 항목이 포함됩니다. 디폴트로, 값은 fn:true()이며 모든 열이 데이터베이스 테이블에서 검색되었음을 의미합니다. 데이터베이스 SQL에서 데이터베이스 호출에 WHERE절을 추가하여 행 수를 제한합니다. Mapping 노드에서 선택한 행 수를 제한하는 대등한 메소드는 $db:select 표현식을 사용하는 것입니다.

이러한 단계에서는 Mapping 노드에서 선택한 행 수를 제한하는 대등한 메소드를 보여줍니다.

  1. 스프레드시트 분할창에서 $db:select 행을 누르십시오. 이로써, fn:true()가 편집 분할창에 놓입니다.
  2. 데이터베이스 호출에 올바른 조건이 지정되도록 편집 분할창에서 표현식을 편집하십시오. 이를 수행하는데 도움이 되도록 다음을 수행할 수 있습니다.
    1. 검색된 행과 관련된 모든 데이터베이스 열을 선택하고 소스 분할창에서 편집 분할창으로 끌어 놓으십시오. SQL WHERE절에서 사용하는 데이터베이스 열 이름입니다.
    2. 검색된 행과 관련된 값이 있는 모든 소스 메시지 요소를 선택하고 소스 분할창에서 편집 분할창으로 끌어 놓으십시오. 일치할 수 있는 선택된 데이터베이스 열에 대한 값입니다.
    3. 편집 > 컨텐츠 지원을 눌러 컨텐츠 지원을 여십시오.
    4. 컨텐츠 지원에서 데이터베이스 호출의 메시지 요소에 적용할 함수를 선택하십시오.
다음은 $db:select 항목의 예입니다. 여기서, 데이터베이스 열은 입력 메시지에서 상수 또는 필드에 대해 일치합니다.
$db:select_1.BROKER50.JDOE.RESOLVEASSESSOR.ASSESSORTYPE = 'WBI' or $db:select_1.BROKER50.JDOE.
RESOLVEASSESSOR.ASSESSORTYPE = $source/tns:msg_tagIA81CONF/AssessorType 

$db:select 입력 항목이 규정된 모든 행을 검색하므로 둘 이상의 행이 검색될 가능성이 있습니다. 기본적으로, 선택사항은 반복으로 처리되며, 이는 스프레드시트 분할창의 $db:select 아래에 ‘for’ 행으로 표시됩니다.

$db:select를 구성한 다음 소스 분할창에서 데이터베이스 열을 대상 분할창의 메시지 요소로 끌어 놓아 데이터베이스에서 대상 메시지를 채우십시오. 맵핑은 소스 분할창의 데이터베이스 열과 대상 분할창의 요소 사이 선으로 표시됩니다. Xpath 형식으로 된 이 맵의 입력 항목도 스프레드시트 분할창에 표시됩니다. 맵핑된 오브젝트 옆의 소스 및 대상 분할창에 삼각형 아이콘이 표시됩니다.

변경 시작데이터베이스 선택 사용

$db:select 항목에는 선택 결과 세트를 대상으로 반복되는 'for' 행이 디폴트로 수반됩니다. 맵핑에서 'for' 행의 위치가 올바른지 확인하십시오. 맵의 작동은 스프레드시트 분할창에서 'for' 행의 위치에 의해 결정됩니다. 예를 들어 $db:select 명령문의 결과가 데이터베이스의 5개 행과 부합하고 'for' 행이 스프레드시트 분할창에서 $target 항목 위에 위치하고 있으면 맵핑 노드에 의해 5개의 완전한 메시지가 출력됩니다. 만약 'for' 행의 위치가 메시지 본문 내에 있으면 하나의 메시지가 생성되는데 메시지 본문에는 5개의 반복되는 요소가 있습니다.

맵핑에는 $db:select 항목과 연결되어 있으며 단일 데이터베이스 선택을 수행하고 결과를 대상으로 여러번 반복하는 여러 'for' 행이 포함될 수 있습니다. 예를 들어 개별 'for' 행이 'condition' 또는 'else'와 함께 사용되는 조건부 맵핑에서 다중 'for' 행이 사용될 수 있습니다.

'for' 행이 반드시 필요한 것은 아니며 다음 상황에서는 삭제할 수 있습니다.
  • 데이터베이스 선택의 결과로 한 행만 산출되는 경우
  • 선택 결과에 집계 Xpath 함수를 사용하는 경우

    예: fn:sum 또는 fn:count

스프레드시트 분할창에서 모든 $db:select 표현식은 $db:select 항목의 범위 내에 있어야 합니다. 즉, $db:select 표현식은 선택 명령문의 하위여야 합니다. $db:select 표현식이 범위 밖에 있으면 메시지 맵핑 편집기는 $db:select 표현식이 범위 내에 있게 되는 위치로 $db:select 항목을 이동합니다. 메시지 맵핑에서 $db:select 항목의 위치가 올바른지 확인하십시오.

데이터베이스 테이블 조인

데이터베이스 테이블 조인은 동일한 데이터베이스 내의 테이블에 대해 지원됩니다. 예를 들어, 다음 두 개의 테이블을 고려하십시오. 여기서, PRODUCT_ID와 PART_NUMBER는 일치합니다.
Table    Column        Row 1    Row 2    Row 3      Row 4
ORDER    PRODUCT_ID    456      456      345        123
         QUANTITY      100      200      300        400

PRODUCT  PART_NUMBER   123      456      789        012
         PART_NAME     pen      pencil   paperclip  glue
         PRICE         0.25     0.15     0.02       0.99
다음 구문의 $db:select 표현식은 테이블을 조인합니다.
$db:select.MY_DB.SCHEMA1.ORDER.PRODUCT_ID=$db:select.MY_DB.SCHEMA2.PRODUCRT.PART_NUMBER
위의 예의 $db:select 표현식은 다음 결과 세트를 생성합니다.
                Row 1    Row 2    Row 3
PRODUCT_ID      456      456      123
QUANTITY        100      200      400
PART_NUMBER     456      456      123
PART_NAME       pencil   pencil   pen
PRICE           0.15     0.15     0.25
단일 테이블로부터 얻어진 결과를 대상으로 반복하듯이 'for' 행을 사용하여 결과 세트를 대상으로 반복할 수 있습니다.
변경 끝
관련 개념
메시지 맵핑 편집기
메시지 맵핑 작성
관련 참조
Mapping 노드
메시지 맵핑 편집기 소스 분할창
메시지 맵핑 편집기 대상 분할창
메시지 맵핑 편집기 편집 분할창
메시지 맵핑 편집기 스프레드시트 분할창
메시지 맵핑
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ar25267_