@IF
Utilisez la fonction @IF pour renvoyer l'une des deux valeurs, en fonction d'une condition. Vous pouvez utiliser la fonction @IF avec d'autres fonctions Oracle GoldenGate pour commencer un argument conditionnel qui teste des conditions d'exception. Vous pouvez diriger le traitement en fonction des résultats du test. Vous pouvez imbriquer des instructions @IF, si nécessaire.
Syntaxe
@IF (<condition>, <value_if_non-zero>, <value_if-zero>)
<condition>
Expression conditionnelle ou fonction Oracle GoldenGate valide. Utilisez des opérateurs numériques (tels que =, > ou <) uniquement pour les comparaisons numériques. Pour les comparaisons de caractères, utilisez l'une des fonctions de comparaison de caractères.
<value_if_non-zero>
Une valeur différente de zéro est considérée comme true.
<value_if_zero>
Zéro (0) est considéré comme false.
Exemples
Exemple 1
La commande suivante renvoie un montant uniquement si la colonne AMT est supérieure à zéro ; sinon, zéro est renvoyé.
AMOUNT_COL = @IF (AMT > 0, AMT, 0)
Exemple 2
La commande suivante renvoie WEST si la colonne STATE est CA, AZ ou NV ; sinon, elle renvoie EAST.
REGION = @IF (@VALONEOF (STATE, 'CA', 'AZ', 'NV'), 'WEST', 'EAST')
Exemple 3
La commande suivante renvoie le résultat de la colonne PRICE multiplié par la colonne QUANTITY si les deux colonnes sont supérieures à
- Sinon, la fonction
@COLSTAT (NULL)crée une valeurNULLdans la colonne cible.
ORDER_TOTAL = @IF (PRICE > 0 AND QUANTITY > 0, PRICE * QUANTITY,
@COLSTAT (NULL))
Exemple 4
L'exemple suivant illustre une instruction @IF imbriquée. Dans l'exemple, si QUANTITY est supérieur à 10, le prix de l'article est égal à 90 % de PRICE.
ORDER_TOTAL = @IF (PRICE > 0 AND QUANTITY > 0, @IF (QUANTITY > 10, (PRICE * 0.9) * QUANTITY, PRICE * QUANTITY), @COLSTAT(NULL))
Remarque : Lorsqu'elle est placée entre parenthèses (), la fonction de mapping de colonne Oracle GoldenGate attend des résultats numériques. La valeur de colonne doit être indiquée entre apostrophes.