Salut à tous,

je cherche à modifier le nom d'un node au sein d'un XML dont le colonne se trouve dans une table.
Vu qu'il y a pas mal de record, je cherche à le faire via une xmlquery. J'ai cherché sur le net ce qu'il y avait là-dessu car je débute et bon c'est pas toujours clair.

J'ai réussi un à faire une query pour savoir dans quelles record mon tag xml se trouvait via ceci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
select ID from XBRLP25.TEMP_XBRL_INSTANCE
where xmlexists('declare namespace Prodcom-p="http://statbel.fgov.be/be/br/bs/prodcom-p-2015-01-01"; $c/*/Prodcom-p:TotalProductionMustBeCompeted'
passing TEMP_XBRL_INSTANCE.DOCUMENT as "c")
et ça fonctionne.

Je voudrais mainentant renommer Prodcom-p:TotalProductionMustBeCompeted en Prodcom-p:TotalProductionMustBeCompleted

j'ai donc essayé ceci, trouver sur le site d'IBM mais le namespace pose probème et je ne comprend pas pourquoi car je le déclare de la même façon que la première query.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
update XBRLP25.TEMP_XBRL_INSTANCE
set TEMP_XBRL_INSTANCE.DOCUMENT = xmlquery('declare namespace Prodcom-p="http://statbel.fgov.be/be/br/bs/prodcom-p-2015-01-01"; copy $new := $INFO
              modify do rename $new/*/Prodcom-p:CalxMinTradeDeliveriesWithoutSummer as "Prodcom-p:CalcMinTradeDeliveriesWithoutSummer"
              return  $new' ) 
WHERE TEMP_XBRL_INSTANCE.ID = 100026
Je reçois une erreur SQLCODE=-16005, SQLSTATE=10506, Si quelqu'un à une idée...
Merci d'avance !