@IF
@IF 함수를 사용하여 조건을 기반으로 두 값 중 하나를 반환합니다. @IF 함수를 다른 Oracle GoldenGate 함수와 함께 사용하여 하나 이상의 예외 조건을 테스트하는 조건부 인수를 시작할 수 있습니다. 테스트 결과에 따라 직접 처리할 수 있습니다. 필요한 경우 @IF 문을 중첩할 수 있습니다.
구문
@IF (<condition>, <value_if_non-zero>, <value_if-zero>)
<condition>
적합한 조건식 또는 Oracle GoldenGate 함수입니다. 숫자 비교에는 숫자 연산자(예: =, > 또는 <)만 사용하십시오. 문자 비교의 경우 문자 비교 함수 중 하나를 사용합니다.
<value_if_non-zero>
0이 아닌 값은 true로 간주됩니다.
<value_if_zero>
0은 false로 간주됩니다.
예제
예 1
다음은 AMT 열이 0보다 큰 경우에만 금액을 반환하고, 그렇지 않은 경우 0이 반환됩니다.
AMOUNT_COL = @IF (AMT > 0, AMT, 0)
예 2
STATE 열이 CA, AZ 또는 NV인 경우 WEST를 반환하고, 그렇지 않은 경우 EAST를 반환합니다.
REGION = @IF (@VALONEOF (STATE, 'CA', 'AZ', 'NV'), 'WEST', 'EAST')
예 3
다음은 두 열이 모두 다음보다 큰 경우 PRICE 열에 QUANTITY 열을 곱한 결과를 반환합니다.
- 그렇지 않으면
@COLSTAT (NULL)함수가 대상 열에NULL값을 생성합니다.
ORDER_TOTAL = @IF (PRICE > 0 AND QUANTITY > 0, PRICE * QUANTITY,
@COLSTAT (NULL))
예 4
다음 예제는 중첩된 @IF 문을 보여줍니다. 예제에서 QUANTITY가 10보다 크면 항목 가격은 PRICE의 90%입니다.
ORDER_TOTAL = @IF (PRICE > 0 AND QUANTITY > 0, @IF (QUANTITY > 10, (PRICE * 0.9) * QUANTITY, PRICE * QUANTITY), @COLSTAT(NULL))
주: 괄호()로 묶인 경우 Oracle GoldenGate 열 매핑 함수에는 숫자 결과가 필요합니다. 열 값은 작은 따옴표를 사용하여 지정해야 합니다.