XML 메시지에서 스칼라 값 리턴

SELECT문을 사용하여 다음과 같이 THE 및 ITEM 키워드를 모두 포함하는 스칼라 값을 리턴합니다. 예를 들면, 다음과 같습니다.

1 + THE(SELECT ITEM T.a FROM Body.Test.A[] AS T WHERE T.b = '123')

ITEM 키워드 사용

다음 예에서는 하나의 항목을 선택하고 단일 값을 작성하는 ITEM 키워드의 사용을 보여줍니다.

 SET OutputRoot.MQMD = InputRoot.MQMD;

SET OutputRoot.XML.Test.Result[] = 
      (SELECT ITEM T.UnitPrice FROM InputBody.Invoice.Purchases.Item[] AS T);

송장(invoice) 메시지를 입력으로 수신하면, 표시된 ESQL는 다음 출력 메시지를 생성합니다.

<Test>
  <Result>27.95</Result>
  <Result>42.95</Result>
  <Result>59.99</Result>
</Test>

ITEM 키워드가 지정되면, 출력 메시지는 스칼라 값의 목록을 포함합니다. ITEM 키워드가 생략된 경우 생성되는 것과 이 메시지를 비교하십시오. 여기에서 필드 목록(name-value 쌍)이 생성됩니다.

<Test>
  <Result>
    <UnitPrice>27.95</UnitPrice>
  </Result>
  <Result>
    <UnitPrice>42.95</UnitPrice>
  </Result>
  <Result>
    <UnitPrice>59.99</UnitPrice>
  </Result>
</Test>

THE 키워드 효과

THE 키워드는 하나의 항목이 포함된 목록을 항목 자체로 변환합니다.

앞의 두 예에서는 모두 목록을 FROM절에 있는 SELECT의 소스로 지정했으므로(필드 참조의 끝에 []가 있어서 배열 표시), 일반적으로 SELECT는 결과 목록을 생성합니다. 이로 인해 목록을 지정 대상으로 지정해야 합니다(따라서 "Result[]"를 지정 대상으로). 그러나 종종 SELECT의 일부로 지정하는 WHERE절이 목록의 한 항목에 대해서만 TRUE를 리턴함을 알 수 있습니다. 이 경우, THE 키워드를 사용하십시오.

다음의 예는 THE 키워드 사용의 효과를 보여줍니다.

 SET OutputRoot.MQMD = InputRoot.MQMD;

SET OutputRoot.XML.Test.Result =              
        THE (SELECT T.Publisher, T.Author FROM InputBody.Invoice.Purchases.Item[] 
                  AS T WHERE T.UnitPrice = 42.95);

THE 키워드는 지정 대상이 OutputRoot.XML.Test.Result가 됨을 의미합니다("[]"는 허용되지도 않음). 그러면 다음 출력 메시지를 생성합니다.

<Test>
  <Result>
    <Publisher>Morgan Kaufmann Publishers</Publisher>
    <Author>Don Chamberlin</Author>
  </Result>
</Test>

스칼라 목록에서 선택

다음의 샘플 출력 메시지를 고려해 보십시오.

<Test>
 <A>1</A>
 <A>2</A>
 <A>3</A>
 <A>4</A>
 <A>5</A>
</Test>

이 메시지를 처리하기 위해 다음과 같은 ESQL문을 코딩하는 경우,

SET OutputRoot.XML.Test.A[] = 
    (SELECT ITEM A from InputBody.Test.A[]  
      WHERE CAST(A AS INTEGER) BETWEEN 2 AND 4);

다음 출력 메시지가 생성됩니다.

      <A>2</A>
      <A>3</A>
      <A>4</A>
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ak05770_