[11.2] Conditions dans la clause When
Bonjour.
J'ai un fichier à charger, dans lequel les lignes ne contiennent pas toutes les mêmes informations. J'entends par là que pour deux lignes, à la même position, je peux avoir deux champs différents. Du coup, je souhaite charger en utilisant la clause When.
Jusqu'à présent ça fonctionne car les conditions sont simples. Exemple:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| .....
INTO ma_table
WHEN champ1= '12345' AND champ2 ='AB'
(col1 position (1) CHAR(5),
col2 position (6) CHAR(2)
)
INTO ma_table
WHEN champ1= '12345' AND champ2 ='CD'
(col1 position (1) CHAR(5),
col3 position (6) CHAR(2)
)
.... |
Aujourd'hui, je dois ajouter des conditions du type "AND champ3 NOT IN (série de valeurs)". Mais apparemment, dans cette clause WHEN on ne peut rien mettre à part "AND", "=", "<" et ">". Surtout, on ne peut pas mettre le "OR", ce qui est très problématique...
Ceci, donc , ne fonctionne pas:
Code:
1 2 3 4 5 6 7
| .....
INTO ma_table
WHEN champ1= '12345' AND champ2 ='AB' AND (champ3<>'C1' OR champ3<>'C2')
(col1 position (1) CHAR(5),
col2 position (6) CHAR(2)
)
.... |
Je ne vois pas de solution simple à mettre en oeuvre. La seule que je vois est de faire une table de chargement avec des colonnes dédoublées et de gérer les conditions dans une procédure ensuite, avant d'insérer dans une autre table. C'est très faisable mais je voulais voir si vous n'aviez pas une solution en testant tout dans le ctl.
Merci.
Edit: en l'écrivant, je me rends compte que je peux utiliser des BOUNDFILLER, virer la clause WHEN et tout tester avec des variables calculées. Je vais voir ça.