@CASE
Utilisez la fonction @CASE pour sélectionner une valeur en fonction d'une série de tests de valeur. Le nombre de cas que vous pouvez tester avec @CASE n'est pas limité. 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.
Cette fonction ne prend pas en charge les types de données NCHAR ou NVARCHAR.
Syntaxe
@CASE (<value>, <test_value1>, <test_result1>
[, <test_value2>, <test_result2>] [, ...]
[, <default_result>]
<value>
Valeur à tester, par exemple, un nom de colonne. Placez les littéraux entre apostrophes.
<test_value>
Résultat valide pour <value>. Placez les littéraux entre apostrophes.
<test_result>
Valeur à renvoyer en fonction de la valeur de <test_value>. Placez les littéraux entre apostrophes.
<default_result>
Valeur par défaut à renvoyer si <value> ne génère aucune des valeurs <test_value>. Placez les littéraux entre apostrophes.
Exemples
Exemple 1
La commande suivante renvoie A car si PRODUCT_CODE est CAR et A truck si PRODUCT_CODE est TRUCK. Si PRODUCT_CODE ne correspond à aucun des deux premiers cas, une indication FIELD_MISSING est renvoyée car aucune valeur par défaut n'a été indiquée.
@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck')
Exemple 2
L'exemple suivant est similaire à l'exemple précédent, sauf qu'il fournit une valeur par défaut. Si PRODUCT_CODE n'est ni CAR ni TRUCK, la fonction renvoie A vehicle.
@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck', 'A vehicle')