@IF
Utilice la función @IF para devolver uno de los dos valores, según una condición. Puede utilizar la función @IF con otras funciones de Oracle GoldenGate para iniciar un argumento condicional que pruebe una o más condiciones de excepción. El proceso directo se puede realizar en función de los resultados del examen. Puede anidar sentencias @IF, si es necesario.
Sintaxis
@IF (<condition>, <value_if_non-zero>, <value_if-zero>)
<condition>
Una expresión condicional válida o una función de Oracle GoldenGate. Utilice operadores numéricos (como =, > o <) solo para comparaciones numéricas. Para las comparaciones de caracteres, utilice una de las funciones de comparación de caracteres.
<value_if_non-zero>
No cero se considera true.
<value_if_zero>
El cero (0) se considera false.
Ejemplos
Ejemplo 1
Lo siguiente devuelve un importe solo si la columna AMT es mayor que cero; de lo contrario, se devuelve cero.
AMOUNT_COL = @IF (AMT > 0, AMT, 0)
Ejemplo 2
Lo siguiente devuelve WEST si la columna STATE es CA, AZ o NV; de lo contrario, devuelve EAST.
REGION = @IF (@VALONEOF (STATE, 'CA', 'AZ', 'NV'), 'WEST', 'EAST')
Ejemplo 3
A continuación, se devuelve el resultado de la columna PRICE multiplicado por la columna QUANTITY si ambas columnas son mayores que
- De lo contrario, la función
@COLSTAT (NULL)crea un valorNULLen la columna de destino.
ORDER_TOTAL = @IF (PRICE > 0 AND QUANTITY > 0, PRICE * QUANTITY,
@COLSTAT (NULL))
Ejemplo 4
En el siguiente ejemplo, se muestra una sentencia @IF anidada. En el ejemplo, si QUANTITY es más de 10, el precio del artículo es el 90 % de PRICE.
ORDER_TOTAL = @IF (PRICE > 0 AND QUANTITY > 0, @IF (QUANTITY > 10, (PRICE * 0.9) * QUANTITY, PRICE * QUANTITY), @COLSTAT(NULL))
Nota: Cuando se incluye entre paréntesis (), la función de asignación de columnas de Oracle GoldenGate espera resultados numéricos. El valor de columna se debe especificar con comillas simples.