RETURN문

RETURN 문은 처리를 종료합니다. 다음에서 발생하는 사항은 RETURN 문이 발행하는 프로그래밍 컨텍스트에 따라 다릅니다.

구문

RETURN문을 함수에서 사용하는 경우, 해당 함수의 처리를 정지시키고 호출 표현식으로 제어를 되돌립니다. 표현식(expression) (제공되어 있어야 함)이 평가되고 함수의 리턴 값 역할을 합니다. 명령문 목록을 인쇄하여 함수를 리턴하는 것은 오류입니다. 리턴된 값의 데이터 유형은 함수 선언에서 사용한 유형과 같아야 합니다.

RETURN문을 프로시저에서 사용하는 경우, 해당 프로시저의 처리를 정지시키고 호출 CALL문으로 제어를 되돌립니다. 프로시저 내에서 사용하는 RETURN문에는 표현식(expression)이 없어야 합니다.

RETURN문을 Filter, Compute 또는 Database 노드의 주요 코드에서 사용하는 경우, 노드의 ESQL 처리를 정지시키고 다음 노드로 제어를 전달합니다. 이 경우 표현식(expression)이 있으면 BOOLEAN 값으로 평가됩니다. 표현식(expression)이 없으면 Filter 노드는 UNKNOWN 값을 가정하고 알 수 없는 터미널로 전달하지만 Compute 및 Database 노드가 Out 터미널로 전달됩니다.

다음의 표는 Compute, Filter 및 Database 노드에서 사용될 때 RETURN문 사이의 차이점을 설명합니다.
  리턴 값 결과
Compute 노드:
RETURN TRUE Out 터미널로 메시지를 전달합니다.
  FALSE 전달하지 않습니다.
  UNKNOWN 전달하지 않습니다.
RETURN;   Out 터미널로 메시지를 전달합니다.
Filter 노드:
RETURN TRUE True 터미널로 메시지를 전달합니다.
  FALSE False 터미널로 메시지를 전달합니다.
  UNKNOWN Unknown 터미널로 메시지를 전달합니다.
RETURN;   Unknown 터미널로 메시지를 전달합니다.
Database 노드
RETURN TRUE Out 터미널로 메시지를 전달합니다.
  FALSE 전달하지 않습니다.
  UNKNOWN 전달하지 않습니다.
RETURN;   Out 터미널로 메시지를 전달합니다.

메시지 예에 기초한 다음의 예에서는 이 명령문을 사용하는 방법을 보여줍니다.
-- Declare variables --
DECLARE a INT;
DECLARE PriceTotal FLOAT;
DECLARE NumItems INT;

-- Initialize values --
SET a = 1;
SET NumItems = 0;
SET PriceTotal = 0.0;

-- Calculate value of order, however if this is a bulk purchase, the --
-- order will need to be handled differently (discount given) so return TRUE  --
-- or FALSE depending on the size of the order --
WHILE a <= CARDINALITY(Invoice.Purchases.Item[a] DO
      SET NumItems = NumItems + Invoice.Purchases.Item[a].Quantity;
      SET PriceTotal = PriceTotal + Invoice.Purchases.Item[a].UnitPrice;
      SET a = a + 1;
 END;
RETURN PriceTotal/NumItems > 42;
품목의 평균 가격이 42보다 큰 경우 TRUE가 리턴됩니다. 그렇지 않으면 FALSE가 리턴됩니다. 따라서 Filter 노드는 가격이 비싼 품목을 설명하는 메시지를 다른 경로를 통해 가격이 저렴한 품목을 설명하는 메시지에서 라우트할 수 있습니다.

Compute 노드에서 처리가 종료되었을 때 내재적 PROPAGATE를 방지하기 위한 RETURN FALSE의 예는 PROPAGATE문을 참조하십시오.

관련 개념
ESQL 개요
관련 태스크
ESQL 개발
관련 참조
Compute 노드
Filter 노드
구문 다이어그램: 사용 가능한 유형
ESQL문
PROPAGATE문
메시지 예
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ak05130_