@CASE
Use a função @CASE para selecionar um valor dependendo de uma série de testes de valor. Não há limite para o número de casos que você pode testar com @CASE. 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.
Essa função não suporta tipos de dados NCHAR ou NVARCHAR.
Sintaxe
@CASE (<value>, <test_value1>, <test_result1>
[, <test_value2>, <test_result2>] [, ...]
[, <default_result>]
<value>
Um valor para testar, por exemplo, um nome de coluna. Coloque literais entre aspas simples.
<test_value>
Um resultado válido para <value>. Coloque literais entre aspas simples.
<test_result>
Um valor a ser retornado com base no valor de <test_value>. Coloque literais entre aspas simples.
<default_result>
Um valor padrão a ser retornado se <value> não resultar em nenhum dos valores <test_value>. Coloque literais entre aspas simples.
Exemplos
Exemplo 1
O seguinte retorna A car se PRODUCT_CODE for CAR e A truck se PRODUCT_CODE for TRUCK. Se PRODUCT_CODE não se ajustar a nenhum dos dois primeiros casos, uma indicação FIELD_MISSING será retornada porque um valor padrão não foi especificado.
@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck')
Exemplo 2
O exemplo a seguir é semelhante ao exemplo anterior, exceto pelo fato de fornecer um valor padrão. Se PRODUCT_CODE não for CAR nem TRUCK, a função retornará A vehicle.
@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck', 'A vehicle')