@CASE

Utilizzare la funzione @CASE per selezionare un valore in base a una serie di test dei valori. Non è previsto alcun limite al numero di casi che è possibile testare con @CASE. Se il numero di casi è elevato, elencare prima le condizioni più frequenti rilevate per ottenere le migliori prestazioni.

Per questa funzione, Oracle GoldenGate supporta l'uso di una sequenza di escape per rappresentare i caratteri in una colonna stringa in Unicode o nella codifica dei caratteri nativa dei sistemi operativi Microsoft Windows, UNIX e Linux. La colonna di destinazione deve essere un tipo di dati SQL Unicode se qualsiasi argomento viene fornito come Unicode.

Questa funzione non supporta i tipi di dati NCHAR o NVARCHAR.

Sintassi

@CASE (<value>, <test_value1>, <test_result1>
[, <test_value2>, <test_result2>] [, ...]
[, <default_result>]

<value>

Valore da sottoporre a test, ad esempio un nome di colonna. Racchiudere i valori letterali tra apici.

<test_value>

Risultato valido per <value>. Racchiudere i valori letterali tra apici.

<test_result>

Valore da restituire in base al valore di <test_value>. Racchiudere i valori letterali tra apici.

<default_result>

Valore predefinito da restituire se <value> non restituisce alcun valore <test_value>. Racchiudere i valori letterali tra apici.

Esempi

Esempio 1

Di seguito viene restituito A car se PRODUCT_CODE è CAR e A truck se PRODUCT_CODE è TRUCK. Se PRODUCT_CODE non si adatta a nessuno dei primi due casi, viene restituita un'indicazione FIELD_MISSING poiché non è stato specificato un valore predefinito.

@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck')

Esempio 2

Quanto segue è simile all'esempio precedente, ad eccezione del fatto che fornisce un valore predefinito. Se PRODUCT_CODE non è né CAR né TRUCK, la funzione restituisce A vehicle.

@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck', 'A vehicle')