@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

  1. De lo contrario, la función @COLSTAT (NULL) crea un valor NULL en 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.