@IF
Verwenden Sie die Funktion @IF, um einen von zwei Werten basierend auf einer Bedingung zurückzugeben. Sie können die Funktion @IF mit anderen Oracle GoldenGate-Funktionen verwenden, um ein bedingtes Argument zu starten, das auf eine oder mehrere Ausnahmebedingungen testet. Sie können die direkte Verarbeitung basierend auf den Ergebnissen des Tests durchführen. Sie können @IF-Anweisungen bei Bedarf verschachteln.
Syntax
@IF (<condition>, <value_if_non-zero>, <value_if-zero>)
<condition>
Ein gültiger bedingter Ausdruck oder eine gültige Oracle GoldenGate-Funktion. Verwenden Sie numerische Operatoren (z.B. =, > oder <) nur für numerische Vergleiche. Verwenden Sie für Zeichenvergleiche eine der Zeichenvergleichsfunktionen.
<value_if_non-zero>
Ein Wert ungleich Null wird als true betrachtet.
<value_if_zero>
Der Wert Null (0) wird als false betrachtet.
Beispiele
Beispiel 1
Im Folgenden wird nur ein Betrag zurückgegeben, wenn die Spalte AMT größer als Null ist. Andernfalls wird Null zurückgegeben.
AMOUNT_COL = @IF (AMT > 0, AMT, 0)
Beispiel 2
Im Folgenden wird WEST zurückgegeben, wenn die Spalte STATE CA, AZ oder NV lautet. Andernfalls wird EAST zurückgegeben.
REGION = @IF (@VALONEOF (STATE, 'CA', 'AZ', 'NV'), 'WEST', 'EAST')
Beispiel 3
Das folgende Ergebnis gibt das Ergebnis der Spalte PRICE multipliziert mit der Spalte QUANTITY zurück, wenn beide Spalten größer als
- Andernfalls erstellt die Funktion
@COLSTAT (NULL)einenNULL-Wert in der Zielspalte.
ORDER_TOTAL = @IF (PRICE > 0 AND QUANTITY > 0, PRICE * QUANTITY,
@COLSTAT (NULL))
Beispiel 4
Das folgende Beispiel zeigt eine verschachtelte @IF-Anweisung. Wenn die QUANTITY im Beispiel größer als 10 ist, beträgt der Artikelpreis 90% der PRICE.
ORDER_TOTAL = @IF (PRICE > 0 AND QUANTITY > 0, @IF (QUANTITY > 10, (PRICE * 0.9) * QUANTITY, PRICE * QUANTITY), @COLSTAT(NULL))
Hinweis: Wenn die Oracle GoldenGate-Spaltenzuordnungsfunktion in Klammern () eingeschlossen ist, erwartet sie numerische Ergebnisse. Der Spaltenwert muss in einfachen Anführungszeichen angegeben werden.