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:
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) ) ....
Ceci, donc , ne fonctionne pas:
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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) ) ....
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.
Partager