Bonsoir,
J'ai une BD DB2 avec 2 tables :
T1
et
T2
Dans la table T1, il y'a une colonne matricule et une colonne DATAS qui contient toutes les données. Du coup, pour accéder aux données on est obligé d'utiliser la fonction substring et de jouer sur les positions.
On me demande de mettre à jour, pour chaque matricule de T1, la zone substring(DATAS,1654,30) de T1 avec la valeur INCOD de T2.
La jointure doit se faire entre substr(t1.DATAS,90,6) de T1 et VACOD de T2 pour ramener le libelle INCOD de T2 afin de mettre à jour la zone substring(DATAS,1654,30) de T1.
Avec un update et un inner join, ca devrait marcher mais j'ai lorsque j'exécute dans DB2 ca ne fonctionne pas (le message est : [SQL0199] Le mot clé INNER est mal placé ...). Jai lu que inner join avec update n'est pas accepté. Du coup je galère pour trouver une solution.
Après avoir parcouru les forums il semble que je dois passer par des sous requêtes mais je n'y arrive pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 update T1 inner join T2 on substr(t1.DATAS,90,6)=t2.VACOD from T1 set t1.DATAS=concat(substring(DATAS,1,1653),concat(substr(t2.incod,1,30), substr(t1.DATAS,1685,1800)));
Pouvez vous m'assiter svp ?
Partager