@EVAL

Utilice la función @EVAL para seleccionar un valor basado en una serie de pruebas independientes. No hay un límite para el número de condiciones que puede probar. Si el número de casos es grande, enumere primero las condiciones más frecuentes para un mejor rendimiento.

Para esta función, Oracle GoldenGate soporta el uso de una secuencia de escape para representar caracteres en una columna de cadena en Unicode o en la codificación de caracteres nativa de los sistemas operativos Microsoft Windows, UNIX y Linux. La columna de destino debe ser un tipo de dato SQL Unicode si se proporciona algún argumento como Unicode.

Sintaxis

@EVAL (<condition>, <result>
[<condition>, <result>] [, ....]
[, <default_result>])

<condition>

Prueba condicional mediante operadores condicionales estándar. Se puede especificar más de una condición.

<result>

Valor o cadena que se devolverá en función de los resultados de la prueba condicional. Encerrar literales entre comillas simples. Especifique un resultado para cada condición que se utilice.

<default_result>

Un resultado predeterminado que se devolverá si no se cumple ninguna de las condiciones. Un resultado predeterminado es opcional.

##

Ejemplos

En el siguiente ejemplo, si la columna AMOUNT es mayor que 10000, se devuelve un resultado de high amount. Si AMOUNT es mayor que 5000 (y menor o igual que 10000), se devuelve un resultado de somewhat high (a menos que se haya cumplido la condición anterior). Si no se cumple ninguna condición, se devuelve una indicación COLUMN_MISSING porque no se especifica un resultado por defecto.

AMOUNT_DESC = @EVAL (AMOUNT > 10000, 'high amount', AMOUNT > 5000, 'somewhat high')

A continuación se muestra una modificación del ejemplo anterior. Devuelve los mismos resultados, excepto que se especifica un valor por defecto y que se devuelve un resultado de lower si AMOUNT es menor o igual que 5000.

@EVAL (AMOUNT > 10000, 'high amount', AMOUNT > 5000, 'somewhat high', 'lower')