1

My code with xml file looks like :

DECLARE @t TABLE (rowId INT IDENTITY PRIMARY KEY, yourXML XML)

INSERT INTO @t (yourXML)
    SELECT '<ns2:zarejestrujStanZgodyAsync xmlns:ns2="http://cyfrowypolsat.pl/interfejsy/zgody/v4/zgodyKlienckie" xmlns:ns10="http://cyfrowypolsat.pl/interfejsy/Rozliczenia/Dokumenty/v2/Nota" xmlns:ns11="http://cyfrowypolsat.pl/interfejsy/Rozliczenia/Dokumenty/v2/FakturaDoZamowienia" xmlns:ns12="http://cyfrowypolsat.pl/interfejsy/Rozliczenia/Core/v2/Konto" xmlns:ns13="http://cyfrowypolsat.pl/uslugi/windykacja/v2/Konto" xmlns:ns14="http://cyfrowypolsat.pl/uslugi/rozliczenia/v2/Konto" xmlns:ns3="http://cyfrowypolsat.pl/interfejsy/crossPromocje/v2/PowiadomieniaZwrotne" xmlns:ns4="http://cyfrowypolsat.pl/uslugi/polecenieZaplaty/v1/Konto" xmlns:ns5="http://cyfrowypolsat.pl/interfejsy/Rozliczenia/Core/v2/KontraktRatalny" xmlns:ns6="http://cyfrowypolsat.pl/interfejsy/Rozliczenia/Core/v3/Kontrakt" xmlns:ns7="http://cyfrowypolsat.pl/interfejsy/Rozliczenia/Core/v2/FakturaCykliczna" xmlns:ns8="http://cyfrowypolsat.pl/interfejsy/bdth/rozliczenie/v3/FakturySprzedazowe" xmlns:ns9="http://cyfrowypolsat.pl/interfejsy/Rozliczenia/Core/v3/KontraktRatalny">
  <metryka>
    <uzytkownik>om-system</uzytkownik>
    <system>OM</system>
    <data>2018-12-17T19:09:52.534</data>
    <uid>962B7A95-5663-4694-9226-B4216270D404</uid>
    <nazwaKwalifikowanaInterfejsuWywolywanego>{http://cyfrowypolsat.pl/interfejsy/zgody/v4/zgodyKlienckie}zarejestrujStanZgodyAsync</nazwaKwalifikowanaInterfejsuWywolywanego>
  </metryka>
  <rejestrujStanZgody>
    <idPoziomy>4</idPoziomy>
    <idReferencji>112070742</idReferencji>
    <idPaczki>962B7A95-5663-4694-9226-B4216270D404</idPaczki>
    <idStanyWoliKlienta>2</idStanyWoliKlienta>
    <idTypyZgod>1027</idTypyZgod>
    <dataWaznosciOd>2018-12-17T11:01:55.833</dataWaznosciOd>
    <idSystemy>13</idSystemy>
    <idPrzyczynyZmianyWpisu>4</idPrzyczynyZmianyWpisu>
    <idTypyUmow>1516</idTypyUmow>
    <operatorModyfikujacy>POLSATC\processEngine</operatorModyfikujacy>
    <idProcesuSprzedazowego>RETENTION</idProcesuSprzedazowego>
  </rejestrujStanZgody>
  <rejestrujStanZgody>
    <idPoziomy>4</idPoziomy>
    <idReferencji>112070742</idReferencji>
    <idPaczki>962B7A95-5663-4694-9226-B4216270D404</idPaczki>
    <idStanyWoliKlienta>1</idStanyWoliKlienta>
    <idTypyZgod>1028</idTypyZgod>
    <dataWaznosciOd>2018-12-17T11:01:55.843</dataWaznosciOd>
    <idSystemy>13</idSystemy>
    <idPrzyczynyZmianyWpisu>4</idPrzyczynyZmianyWpisu>
    <idTypyUmow>1516</idTypyUmow>
    <operatorModyfikujacy>POLSATC\processEngine</operatorModyfikujacy>
    <idProcesuSprzedazowego>RETENTION</idProcesuSprzedazowego>
  </rejestrujStanZgody>
  <rejestrujStanZgody>
    <idPoziomy>4</idPoziomy>
    <idReferencji>112070742</idReferencji>
    <idPaczki>962B7A95-5663-4694-9226-B4216270D404</idPaczki>
    <idStanyWoliKlienta>2</idStanyWoliKlienta>
    <idTypyZgod>1110</idTypyZgod>
    <dataWaznosciOd>2018-12-17T11:01:55.873</dataWaznosciOd>
    <idSystemy>13</idSystemy>
    <idPrzyczynyZmianyWpisu>4</idPrzyczynyZmianyWpisu>
    <idTypyUmow>1516</idTypyUmow>
    <operatorModyfikujacy>POLSATC\processEngine</operatorModyfikujacy>
    <idProcesuSprzedazowego>RETENTION</idProcesuSprzedazowego>
  </rejestrujStanZgody>
  <rejestrujStanZgody>
    <idPoziomy>4</idPoziomy>
    <idReferencji>112070742</idReferencji>
    <idPaczki>962B7A95-5663-4694-9226-B4216270D404</idPaczki>
    <idStanyWoliKlienta>2</idStanyWoliKlienta>
    <idTypyZgod>1092</idTypyZgod>
    <dataWaznosciOd>2018-12-17T11:01:55.863</dataWaznosciOd>
    <idSystemy>13</idSystemy>
    <idPrzyczynyZmianyWpisu>4</idPrzyczynyZmianyWpisu>
    <idTypyUmow>1516</idTypyUmow>
    <operatorModyfikujacy>POLSATC\processEngine</operatorModyfikujacy>
    <idProcesuSprzedazowego>RETENTION</idProcesuSprzedazowego>
  </rejestrujStanZgody>
  <rejestrujStanZgody>
    <idPoziomy>4</idPoziomy>
    <idReferencji>112070742</idReferencji>
    <idPaczki>962B7A95-5663-4694-9226-B4216270D404</idPaczki>
    <idStanyWoliKlienta>1</idStanyWoliKlienta>
    <idTypyZgod>1065</idTypyZgod>
    <dataWaznosciOd>2018-12-17T11:01:55.857</dataWaznosciOd>
    <idSystemy>13</idSystemy>
    <idPrzyczynyZmianyWpisu>4</idPrzyczynyZmianyWpisu>
    <idTypyUmow>1516</idTypyUmow>
    <operatorModyfikujacy>POLSATC\processEngine</operatorModyfikujacy>
    <idProcesuSprzedazowego>RETENTION</idProcesuSprzedazowego>
  </rejestrujStanZgody>
</ns2:zarejestrujStanZgodyAsync>'



SELECT 'before' s, DATALENGTH(yourXML) dl, yourXML
FROM @t
WHERE rowId = 1

-- Update one attribute
UPDATE @t
SET yourXML.modify('replace value of (zarejestrujStanZgodyAsync/rejestrujStanZgody/idSystemy/text())[1] with "38"')
WHERE rowId = 1

SELECT 'after' s, DATALENGTH(yourXML) dl, yourXML
FROM @t
WHERE rowId = 1

I don't know what I am doing wrong here...

I want to change this line

<idSystemy>13</idSystemy>

to :

<idSystemy>38</idSystemy>

I know this code is going to change only the first variable of my xml. How should I do it correctly + what can I do to change this in my whole xml file?

When I use my code, I never got the expected value.

Thanks in advance for any tips.

10
  • Are you wanting to replace all occurrences of <idSystemy>13</idSystemy>? Looking at your XML there are 5 instances of it, however, your sample SQL implies you only want to replace the first. Commented Dec 19, 2018 at 9:45
  • i want to replace all of them , but my code should replace 1st one. If you know how can i replace all of them please edit little my code and ansewar question :) Commented Dec 19, 2018 at 9:46
  • stackoverflow.com/questions/16712841/… Commented Dec 19, 2018 at 11:02
  • Check the answer here. I have replaced and removed colon (:) from main node name- stackoverflow.com/questions/7596422/… Commented Dec 19, 2018 at 11:15
  • You edited my xml file.... @SurajKumar i want answear for my question without removing something with my xml file Commented Dec 19, 2018 at 11:23

1 Answer 1

1

To update this number i used just this code:

UPDATE @t
SET yourXML.modify('replace value of (//*/rejestrujStanZgody/idSystemy/text())[1] with ("38")')
WHERE rowId = 1

and it works perfect (with namespaces we need to build path like this //* to avoid ns2:zarejestrujStanZgodyAsync

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.