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