@EVAL

Use a função @EVAL para selecionar um valor com base em uma série de testes independentes. Não há limite para o número de condições que você pode testar. Se o número de casos for grande, liste primeiro as condições encontradas com mais frequência para obter o melhor desempenho.

Para essa função, o Oracle GoldenGate suporta o uso de uma sequência de escape para representar caracteres em uma coluna de string em Unicode ou na codificação de caracteres nativos dos sistemas operacionais Microsoft Windows, UNIX e Linux. A coluna de destino deverá ser um tipo de dados Unicode SQL se algum argumento for fornecido como Unicode.

Sintaxe

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

<condition>

Um teste condicional usando operadores condicionais padrão. Mais de uma condição pode ser especificada.

<result>

Um valor ou string a ser retornado com base nos resultados do teste condicional. Coloque literais entre aspas simples. Especifique um resultado para cada condição usada.

<default_result>

Um resultado padrão a ser retornado se nenhuma das condições for satisfeita. Um resultado padrão é opcional.

##

Exemplos

No exemplo a seguir, se a coluna AMOUNT for maior que 10000, um resultado de high amount será retornado. Se AMOUNT for maior que 5000 (e menor ou igual a 10000), um resultado de somewhat high será retornado (a menos que a condição anterior tenha sido satisfeita). Se nenhuma das condições for satisfeita, uma indicação COLUMN_MISSING será retornada porque um resultado padrão não foi especificado.

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

A seguir, há uma modificação do exemplo anterior. Ele retorna os mesmos resultados, exceto que um valor padrão é especificado, e um resultado de lower será retornado se AMOUNT for menor ou igual a 5000.

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