vkrf
Messages postés1Date d'inscriptionjeudi 23 novembre 2006StatutMembreDernière intervention23 novembre 2006
-
23 nov. 2006 à 15:50
raimora
Messages postés1Date d'inscriptionjeudi 24 juillet 2008StatutMembreDernière intervention 7 juillet 2011
-
7 juil. 2011 à 17:18
Bonjour
Je rencontre sur as/400 v5r1 un problème avec la requete SQL suivante :
update mabib/fichier1 set colonne100 (select colonne2 from mabib/fichier2 where colonne1 fichier1.colonne2)
le système me propose une mise à jour du fichier , la MAJ ne s'effectue pas , message " valeurs indéfinies non admises dans la colonne100"
si je modifie la requête comme ceci :
update mabib/fichier1 set colonne100 (select colonne2 from mabib/fichier2 where colonne1 fichier1.colonne2) where colonne2 =10
la requête met à jour correctement l'enregistrement correspondant
Mais je veux une mise à jour de toutes les colonne100 du fichier 1.
raimora
Messages postés1Date d'inscriptionjeudi 24 juillet 2008StatutMembreDernière intervention 7 juillet 2011 7 juil. 2011 à 17:18
le pb est vieux mais la reponses pourra surement encore en aider d'autres il faut ecrire la requete comme suit
update mabib/fichier1 set colonne100 (select colonne2 from mabib/fichier2 where colonne1 fichier1.colonne2)
where exists (select 'x' from mabib/fichier2 where colonne1 = fichier1.colonne2)
C'est un pb DB2 il va lire la table mabib/fichier1 de façon séquentielle et s'il ne trouve pas de valeur a mettre a jour (select colonne2 from mabib/fichier2 where colonne1 = fichier1.colonne2 n'est pas trouvé) alors il met ce message d'erreur.
il faut donc rajouter un exists! pour qu'il ne lise que les enregistrements de mabib/fichier1 qui existent dans mabib/fichier2