@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')