@EVAL

Utilizzare la funzione @EVAL per selezionare un valore basato su una serie di test indipendenti. Non è previsto alcun limite al numero di condizioni che è possibile testare. 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.

Sintassi

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

<condition>

Test condizionale che utilizza operatori condizionali standard. È possibile specificare più condizioni.

<result>

Valore o stringa da restituire in base ai risultati del test condizionale. Racchiudere i valori letterali tra apici. Specificare un risultato per ogni condizione utilizzata.

<default_result>

Risultato predefinito da restituire se nessuna delle condizioni è soddisfatta. Un risultato predefinito è facoltativo.

##

Esempi

Nell'esempio seguente, se la colonna AMOUNT è maggiore di 10000, viene restituito il risultato di high amount. Se AMOUNT è maggiore di 5000 (e minore o uguale a 10000), viene restituito il risultato di somewhat high (a meno che la condizione precedente non sia stata soddisfatta). Se nessuna delle due condizioni è soddisfatta, viene restituita un'indicazione COLUMN_MISSING perché non viene specificato un risultato predefinito.

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

Di seguito viene indicata una modifica dell'esempio precedente. Restituisce gli stessi risultati, tranne che viene specificato un valore predefinito e viene restituito un risultato di lower se AMOUNT è minore o uguale a 5000.

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