@EVAL

Utilisez la fonction @EVAL pour sélectionner une valeur en fonction d'une série de tests indépendants. Il n'y a aucune limite au nombre de conditions que vous pouvez tester. Si le nombre de cas est important, répertoriez d'abord les conditions les plus fréquemment rencontrées pour obtenir les meilleures performances.

Pour cette fonction, Oracle GoldenGate prend en charge l'utilisation d'une séquence d'échappement pour représenter des caractères dans une colonne de chaîne dans Unicode ou dans l'encodage de caractères natif des systèmes d'exploitation Microsoft Windows, UNIX et Linux. La colonne cible doit être de type Unicode SQL si un argument est fourni en tant qu'Unicode.

Syntaxe

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

<condition>

Test conditionnel utilisant des opérateurs conditionnels standard. Vous pouvez spécifier plusieurs conditions.

<result>

Valeur ou chaîne à renvoyer en fonction des résultats du test conditionnel. Placez les littéraux entre apostrophes. Indiquez un résultat pour chaque condition utilisée.

<default_result>

Résultat par défaut à renvoyer si aucune des conditions n'est satisfaite. Un résultat par défaut est facultatif.

##

Exemples

Dans l'exemple suivant, si la colonne AMOUNT est supérieure à 10000, un résultat de high amount est renvoyé. Si AMOUNT est supérieur à 5000 (et inférieur ou égal à 10000), un résultat de somewhat high est renvoyé (sauf si la condition précédente a été remplie). Si aucune des conditions n'est satisfaite, une indication COLUMN_MISSING est renvoyée car aucun résultat par défaut n'est spécifié.

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

Voici une modification de l'exemple précédent. Elle renvoie les mêmes résultats, sauf qu'une valeur par défaut est spécifiée et qu'un résultat de lower est renvoyé si AMOUNT est inférieur ou égal à 5000.

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