Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1044 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [DB2] Besoin d'aide pour un MERGE

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[DB2] Besoin d'aide pour un MERGE

n°2157982
Styx0
Aware, abware !
Posté le 25-09-2012 à 09:39:08  profilanswer
 

J'ai une base de donnée sous DB2 / AS400 / iSeries (déjà ça part mal ;))
 
je dois mettre à jour une table à partir d'une autre, vu que les jointures ne sont pas acceptées dans les requetes de type UPDATE, je souhaite utiliser la fonction MERGE
 
mon code SQL :
 
MERGE INTO HAYRUN.OPP238 AS OPP238  
USING  
(  
 SELECT
 ITMCO#
 , ITMNUM
 , RIGHT(LEFT(ITMGRP, 2),1) || 'YY'  
 FROM  HAYRUN.ITP010 AS ITP010
 WHERE  ITMCO#=16 AND TRIM(ITMNUM)='RCX12100' AND ITMFLA='S'  
) AS ITM(ITMCO,ITMNUM,GRP) ON OPP238.PIDITM = ITM.ITMNUM AND OPP238.PIDCO = ITM.ITMCO#  
WHEN MATCHED THEN
 UPDATE SET PIDGRP = ITM.GRP
ELSE IGNORE
 
bref ça me parait assez simple comme instruction,
et bé sous le query de iNavigator je choppe l'erreur suivante :
 
Message : [SQL0104] Token MERGE was not valid. Valid tokens: ( END GET SET CALL DROP FREE HOLD LOCK OPEN WITH ALTER BEGIN. Cause . . . . . :   A syntax error was detected at token MERGE.  Token MERGE is not a valid token. (...)
 
Pourtant la version de la BDD (7.1) est sensé supporter le MERGE : http://publib.boulder.ibm.com/info [...] ymerge.htm
 
ca fait déjà un jour que je coince là dessus,
une ptite idée ?
 
merci


---------------
Galerie Photo (Canon)
mood
Publicité
Posté le 25-09-2012 à 09:39:08  profilanswer
 

n°2158148
boomy29
PSN: tintine29
Posté le 25-09-2012 à 19:57:44  profilanswer
 

je m'y connais pas en DB2 (j'annonce)  
mais je me demande si tu peux pas essayer  
une requete dans ce style ne marche pas?
 SELECT
 ITMCO#
 , ITMNUM
 , RIGHT(LEFT(ITMGRP, 2),1) || 'YY'  
 FROM  HAYRUN.ITP010 AS ITP010, OPP238
 WHERE  ITMCO#=16 AND TRIM(ITMNUM)='RCX12100' AND ITMFLA='S' AND   OPP238.PIDITM = ITM.ITMNUM AND OPP238.PIDCO = ITM.ITMCO#

n°2158151
Styx0
Aware, abware !
Posté le 25-09-2012 à 20:18:56  profilanswer
 

Salut,
 
oui la jointure fonctionne, il n'y  a pas de problème pour ça
 
le problème c'est pour faire un UPDATE avec une jointure, manifestement possible avec le MERGE  
mais j'y arrives pas :(
 


---------------
Galerie Photo (Canon)
n°2158154
boomy29
PSN: tintine29
Posté le 25-09-2012 à 20:37:24  profilanswer
 

UPDATE SET PIDGRP = GRP FROM (SELECT
 ITMCO#
 , ITMNUM
 , RIGHT(LEFT(ITMGRP, 2),1) || 'YY' AS GRP
 ,  OPP238.PIDGRP
 FROM  HAYRUN.ITP010 AS ITP010, OPP238
 WHERE  ITMCO#=16 AND TRIM(ITMNUM)='RCX12100' AND ITMFLA='S' AND   OPP238.PIDITM = ITM.ITMNUM AND OPP238.PIDCO = ITM.ITMCO#) AS TEST

 

ça n'existe pas ?


Message édité par boomy29 le 25-09-2012 à 20:38:49
n°2158196
Styx0
Aware, abware !
Posté le 26-09-2012 à 08:40:05  profilanswer
 

Non :(
 
ce n'est pas de l'ISO SQL ... malheureusement (ça marche très bien sous mon SQL Server)


---------------
Galerie Photo (Canon)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [DB2] Besoin d'aide pour un MERGE

 

Sujets relatifs
besoin d'aide-language C svpBesoin d'aide svp
Java - Besoin d'aide pour les JPanelAide flashcode -> Lien vidéo
[C#] Expression régulièresAide script JS (viewport width et manipulation)
[Débutant HTML/CSS]Besoin d'aide pour débug et compréhension code 
Plus de sujets relatifs à : [DB2] Besoin d'aide pour un MERGE


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR