Problème avec un Merge

Themis_F Messages postés 2 Date d'inscription mardi 9 mai 2006 Statut Membre Dernière intervention 8 juin 2010 - 7 juin 2010 à 23:21
Themis_F Messages postés 2 Date d'inscription mardi 9 mai 2006 Statut Membre Dernière intervention 8 juin 2010 - 8 juin 2010 à 22:36
Bonsoir tous le monde,

Alors je vous explique...je fais un merge dans une page php. Je suis obligé d'utiliser les fonction obsolète d'OCI8...alors je compare les champs d'une table a savoir HMV_SUIV par rapport a des variables php...s'il y a concordance je fais un update, aussi non je fais un insert...

Voila a quoi ressemble ma requete

"MERGE INTO HMV_SUIV e
USING (SELECT * FROM dual) p
ON (e.UNT_NID=".$_POST["unite"].",
e.SEC_NID=".$SEC_NID.",
e.MNCITEM_NID=".$MNCITEM_NID.",
e.TRTMT_MOIS='".$_POST["mois"]."',
e.TRTMT_ANNEE=".$_POST["annee"].")
WHEN MATCHED THEN
UPDATE SET e.PRLVMT_NNOMBRE = ".$PRLVMT_NNOMBRE."
WHEN NOT MATCHED THEN
INSERT(e.UNT_NID,e.PRLVMT_NNOMBRE,e.SEC_NID,e.MNCITEM_NID,e.TRTMT_MOIS,e.TRTMT_ANNEE)
VALUES(".$_POST["unite"].",".$PRLVMT_NNOMBRE.",".$SEC_NID.",".$MNCITEM_NID.",'".$_POST["mois"]."',".$_POST["annee"].")";


mais je ne sais pas si l'on peut l'utiliser de cette maniere. Ca ne fonctionne pas...Un coup de pouce serait le bien venu.
Je vous remercie
Bonne soirée ;)

Themis

1 réponse

Themis_F Messages postés 2 Date d'inscription mardi 9 mai 2006 Statut Membre Dernière intervention 8 juin 2010
8 juin 2010 à 22:36
Bonsoir,

La nuit dernière j'ai enfin trouvé la solution.Je la poste pour d'autre personne qui doivent tout comme moi utiliser qu'une seule table et des variable php avec plusieurs conditions.
Effectivement c'etait des and et non pas des "," a ajouter dans le ON.
Voici ma requtete fonctionnelle.

MERGE INTO HMV_SUIV e
 USING (SELECT * FROM dual) p
 ON (e.UNT_NID=".$_POST["unite"]."
 AND e.SEC_NID=".$SEC_NID."
 AND e.MNCITEM_NID=".$MNCITEM_NID."
 AND e.TRTMT_MOIS='".$_POST["mois"]."'
 AND e.TRTMT_ANNEE=".$_POST["annee"].")
 WHEN MATCHED THEN
 UPDATE SET e.PRLVMT_NNOMBRE = ".$PRLVMT_NNOMBRE."
 WHEN NOT MATCHED THEN
 INSERT(e.UNT_NID,e.PRLVMT_NNOMBRE,e.SEC_NID,e.MNCITEM_NID,e.TRTMT_MOIS,e.TRTMT_ANNEE)
 VALUES (".$_POST["unite"].", ".$PRLVMT_NNOMBRE.",".$SEC_NID.",".$MNCITEM_NID.",'".$_POST["mois"]."',".$_POST["annee"].")";



Voila en espérant que ca aidera un jour une personne. Bonne continuation
Themis
0
Rejoignez-nous