Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/07/2006, 15h45   #1
Invité de passage
 
Inscription : juillet 2003
Messages : 2
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 2
Points : 0
Points : 0
Par défaut Variables dans requetes db2

bonjour tous le monde,

voila j'ai un petit souci pour passer une requete db2 integrée dans un script shell:
je vous explique
mon script commence par un select sur plusieurs tables dont je recupere le resultat dans un fichier log.
le resultat ds le fichier log donne ca :"update nsc_tval set qmajb = QBASE-03 where cval = DE000CG08979"
ce fichier de log est en fait de nouvelles requetes a passer comme vous pouvez le constater, et c'est la que le probleme se cree.
en effet, cet update ne peut se faire qu'avec des quotes entourant QBASE-03 et DE000CG08979.
voila la solution que j'ai teste : utilisation de awk pour recuperer juste les deux champs qui m'interesses puis passage comme suit de la commade db2
for i in `cat qbase.log` #fichier de log contenant le champ QBASE-03
do
for j in `cat tampon.log` #fichier de log contenant le champ DE000CG...
do
echo $i
echo $j
db2 "update nsc_tval set qmajb = '"$i"' where cval = '"$j"'";
CODE=$?
if [[ $CODE -eq 0 ]]
then
WRITE_MSG_INFO "SUCCESFULLY EXECUTED THE UPDATE COMMAND"
elif [[ $CODE -eq 1 ]]
then
WRITE_MSG_INFO "NO DATA RETURNED"
else
WRITE_MSG_ERROR "ERROR WHILE TRYING TO EXECUTE THE UPDATE COMMAND. RETURNED CODE : $CODE"
NO_ERROR=0
fi
done
done

le message d'erreur est dc le suivant : SQL0100W No row was found for FETCH, UPDATE or DELETE; or the result of a
query is an empty table. SQLSTATE=02000

je pense que le fait que les deux variables soient entre quotes font que la commande db2 recupere le mauvais parametre et qu'il lui est impossible d'updater sa table.

voila si qqn aurait une idee me permettant d'avancer la dessus ca serait sympa parce que la je commence a en avoir plein le crane lol.

merci d'avance.
Godz
godzilla est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/07/2006, 16h33   #2
Invité de passage
 
Inscription : juillet 2003
Messages : 2
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 2
Points : 0
Points : 0
bon en fait ya un petit souci sur ma boucle c pas exactement ce que je veux faire. Donc je vais peut etre plutot essayer de modifier directement le fichier de log en ajoutant dans chaque ligne les quotes necessaires. Desole ca n'a plus grand chose a voir avec db2.

si qqn avait toutefois qq remarques a faire concernant mon probleme ca m'interesserait qd meme de savoir comment faire pour passer une requete db2 avec des variables.

merci

Godz
godzilla est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h20.


 
 
 
 
Partenaires

Hébergement Web