RETURN 문은 처리를 종료합니다. 다음에서 발생하는 사항은 RETURN 문이 발행하는 프로그래밍 컨텍스트에 따라 다릅니다.
RETURN문을 함수에서 사용하는 경우, 해당 함수의 처리를 정지시키고 호출 표현식으로 제어를 되돌립니다. 표현식(expression) (제공되어 있어야 함)이 평가되고 함수의 리턴 값 역할을 합니다. 명령문 목록을 인쇄하여 함수를 리턴하는 것은 오류입니다. 리턴된 값의 데이터 유형은 함수 선언에서 사용한 유형과 같아야 합니다.
RETURN문을 프로시저에서 사용하는 경우, 해당 프로시저의 처리를 정지시키고 호출 CALL문으로 제어를 되돌립니다. 프로시저 내에서 사용하는 RETURN문에는 표현식(expression)이 없어야 합니다.
RETURN문을 Filter, Compute 또는 Database 노드의 주요 코드에서 사용하는 경우, 노드의 ESQL 처리를 정지시키고 다음 노드로 제어를 전달합니다. 이 경우 표현식(expression)이 있으면 BOOLEAN 값으로 평가됩니다. 표현식(expression)이 없으면 Filter 노드는 UNKNOWN 값을 가정하고 알 수 없는 터미널로 전달하지만 Compute 및 Database 노드가 Out 터미널로 전달됩니다.
리턴 값 | 결과 | |
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문을 참조하십시오.