FOR 함수

FOR 필드 함수는 TRUE, FALSE 또는 UNKNOWN의 결과 값 표현 및 지정을 평가합니다.

구문

FOR는 반복 필드의 모든 인스턴스에서 반복되는 표현식을 쓸 수 있습니다. 인스턴스마다 Boolean 표현식을 처리하고 그 결과를 조합합니다.

예를 들면,
FOR ALL Body.Invoice.Purchases."Item"[] AS I (I.Quantity <= 50)
주:
  1. 한정 술어 자체를 사용할 때 첫 번째로 주의할 것은 필드 참조 []의 끝에서 FOR ALL 뒤에 있는 []입니다. 대괄호는 Item 필드에 있는 모든 인스턴스의 반복을 정의합니다.

    일부 경우, 컨텍스트에서 해당 정보를 얻을 수 있기 때문에 이 구문이 불필요해 보이지만 다른 구문 조각과의 일관성을 위해 수행됩니다.

  2. AS절은 이름 I를 반복 필드의 현재 인스턴스와 연관시킵니다. 이것은 C++과 같은 일부 오브젝트 지향 언어에서 사용되는 반복자 클래스의 개념과 비슷합니다. 괄호 안의 표현식은 Item 필드의 각 인스턴스에 대해 평가되는 술어입니다.

ALL 키워드를 지정하는 경우, 이 함수는 Body.Invoice.Purchases 내에 있는 필드 Item의 모든 인스턴스에서 반복되며 술어 I.Quantity <= 50을 평가합니다. 술어가 다음으로 평가되면 다음을 리턴합니다.
  • 필드가 공란이거나 Item의 모든 인스턴스에 대해 TRUE이면 TRUE를 리턴합니다.
  • Item의 인스턴스에 대해 FALSE이면 FALSE를 리턴합니다.
  • 그렇지 않으면, UNKNOWN을 리턴합니다.
ANYSOME 키워드는 동등합니다. 이를 사용할 경우, 함수는 Body.Invoice.Purchases 내에 있는 필드 Item의 모든 인스턴스에서 반복되며 술어 I.Quantity <= 50을 평가합니다. 술어가 다음으로 평가되면 다음을 리턴합니다.
  • 필드가 공란이거나 Item의 모든 인스턴스에 대해 FALSE이면 FALSE를 리턴합니다.
  • Item의 인스턴스에 대해 TRUE이면 TRUE를 리턴합니다.
  • 그렇지 않으면, UNKNOWN을 리턴합니다.
이를 자세히 설명하기 위해 다음 예는 메시지 예에 설명된 메시지를 기초로 합니다. 다음 필터 표현식에서,
FOR ANY Body.Invoice.Purchases."Item"[] AS I (I.Title = 'The XML Companion')
하위 술어는 TRUE로 평가됩니다. 그러나 다음 표현식은 FALSE를 리턴합니다.
FOR ANY Body.Invoice.Purchases."Item"[] AS I (I.Title = 'C Primer')
C Primer는 이 송장(invoice)에 포함되지 않기 때문입니다. 이 인스턴스에서 송장(invoice)의 일부 항목에 책 제목 필드가 포함되지 않은 경우 하위 술어는 UNKNOWN을 리턴하며 한정 술어는 값 UNKNOWN을 리턴합니다.
널(null) 값이 나타날 가능성을 다룰 때에는 매우 주의해야 합니다. 다음과 같이 필드의 존재를 명확히 점검하여 이 필터를 작성하십시오.
FOR ANY Body.Invoice.Purchases."Item"[] AS I (I.Book IS NOT NULL AND
I.Book.Title = 'C Primer')
IS NOT NULL 술어는 Item 필드에 Book이 포함되지 않은 경우 하위 술어에서 FALSE 값이 리턴되도록 합니다.
관련 개념
ESQL 개요
관련 태스크
ESQL 개발
알 수 없는 다중 발생 요소에 액세스
관련 참조
구문 다이어그램: 사용 가능한 유형
메시지 예
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ak18490_