SELECT로 리턴 점검

SELECT문이 데이터를 리턴하지 않거나 추가 데이터를 리턴하지 않을 경우 이는 정상적인 상황으로 핸들링되며 오류 코드가 SQLCODE에 설정되지 않습니다. 이 상황은 현재 노드에서 데이터베이스 오류 시 예외 전달경고를 오류로 처리 등록 정보의 설정과 무관하게 발생합니다.

SELECT문이 데이터를 리턴하지 않았음을 알아내려면 리턴 결과를 점검하는 ESQL을 포함시키십시오. 다음과 같은 몇 가지 방식으로 이를 수행할 수 있습니다.

  1. EXISTS

    SELECT 함수가 하나 이상의 값을 리턴했는지(TRUE) 또는 아무런 값도 리턴하지 않았는지(FALSE)를 나타내는 Boolean 값을 리턴합니다.

    IF EXISTS(SELECT T.MYCOL FROM Database.MYTABLE) THEN 
    ...
  2. CARDINALITY

    SELECT에 응답 시 배열을 예상할 경우 CARDINALITY를 사용하여 수신된 입력 항목의 수를 계산할 수 있습니다.

    SET OutputRoot.XML.Testcase.Results[] = ( 
        SELECT T.MYCOL FROM Database.MYTABLE)
    ......
    IF CARDINALITY (OutputRoot.XML.Testcase.Results[]) > 0 THEN
    ........
  3. IS NULL

    SELECT문에서 THE 또는 ITEM 키워드를 사용한 경우 스칼라 값이 리턴됩니다. 행이 리턴되지 않은 경우 값 세트는 널(NULL)입니다. 하지만 값 NULL이 열 내에 포함되었고 이 두 개 경우 사이를 구분해야할 수도 있습니다.

    이를 수행할 경우 COALESCE를 SELECT문에 포함시키십시오. 예는 다음과 같습니다.

    SET OutputRoot.XML.Testcase.Results VALUE = THE (
       SELECT ITEM COALESCE(T.MYCOL, 'WAS NULL')
       FROM Database.MYTABLE);

    여기에서 문자열 WAS NULL이 리턴될 경우 이것은 행이 리턴된 것이 아니라 열에 NULL이 포함되었음을 표시합니다.

이전 릴리스에서 데이터 또는 추가 데이터가 리턴되지 않았으면 대부분의 경우에 100이라는 SQLCODE가 설정된 것입니다. 메시지 플로우의 데이터베이스 오류 핸들링을 선택한 경우 예외가 브로커에 의해 발생된 것입니다.

관련 개념
메시지 플로우 개요
예외 목록 트리 구조
ESQL 개요
메시지 모델링
관련 태스크
메시지 플로우 설계
메시지 플로우 컨텐츠 정의
메시지 플로우 내의 오류 핸들링
ESQL 파일 관리
관련 참조
Compute 노드
Database 노드
Filter 노드
ESQL 참조
SET문
ESQL 단순 비교 연산자
CARDINALITY 함수
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ac17020_