@IF
Utilizzare la funzione @IF per restituire uno dei due valori, in base a una condizione. È possibile utilizzare la funzione @IF con altre funzioni di Oracle GoldenGate per avviare un argomento condizionale che esegue il test di una o più condizioni di eccezione. È possibile indirizzare l'elaborazione in base ai risultati del test. Se necessario, è possibile nidificare le istruzioni @IF.
Sintassi
@IF (<condition>, <value_if_non-zero>, <value_if-zero>)
<condition>
Un'espressione condizionale valida o una funzione Oracle GoldenGate. Utilizzare gli operatori numerici (ad esempio =, > o <) solo per i confronti numerici. Per il confronto dei caratteri, utilizzare una delle funzioni di confronto dei caratteri.
<value_if_non-zero>
Non zero è considerato true.
<value_if_zero>
Lo zero (0) è considerato false.
Esempi
Esempio 1
Di seguito viene restituito un importo solo se la colonna AMT è maggiore di zero, altrimenti viene restituito zero.
AMOUNT_COL = @IF (AMT > 0, AMT, 0)
Esempio 2
Di seguito viene restituito WEST se la colonna STATE è CA, AZ o NV, altrimenti restituisce EAST.
REGION = @IF (@VALONEOF (STATE, 'CA', 'AZ', 'NV'), 'WEST', 'EAST')
Esempio 3
Di seguito viene restituito il risultato della colonna PRICE moltiplicata per la colonna QUANTITY se entrambe le colonne sono maggiori di
- In caso contrario, la funzione
@COLSTAT (NULL)crea un valoreNULLnella colonna di destinazione.
ORDER_TOTAL = @IF (PRICE > 0 AND QUANTITY > 0, PRICE * QUANTITY,
@COLSTAT (NULL))
Esempio 4
L'esempio seguente illustra un'istruzione @IF nidificata. Nell'esempio, se QUANTITY è maggiore di 10, il prezzo dell'articolo è pari al 90% di PRICE.
ORDER_TOTAL = @IF (PRICE > 0 AND QUANTITY > 0, @IF (QUANTITY > 10, (PRICE * 0.9) * QUANTITY, PRICE * QUANTITY), @COLSTAT(NULL))
Nota: se racchiusa tra parentesi (), la funzione di mapping delle colonne di Oracle GoldenGate prevede risultati numerici. Il valore della colonna deve essere specificato utilizzando virgolette singole.