none
Lokale Variable (XML) verarbeiten in Update-Statement RRS feed

  • Allgemeine Diskussion

  • Hallo!

    Ich habe folgenden Abfrage:

    DECLARE @RESULT xml
    
    UPDATE myTable
    SET
      @RESULT = dbo.CreateResult(param1, param2),
      result1 = @RESULT.value('root[1]/result1[1]','int'),
      result2 = @RESULT.value('root[1]/result2[1]','int'),
    WHERE ...
    

     

    Darin führe ich für jeden betroffenen Datensatz, die Funktion "CreateResult" aus, in der eine XML erzeugt wird, und speichere es in einer lokalen Variable. Diese Ergebnisse möchte ich dann mittels einer XML-Funktion (.value) abfragen und in verschiedene Spalten schreiben.

    Das Problem ist, dass die value-Funktion immer NULL zurück gibt, als ob es den XML-Knoten nicht findet. Schreibe ich jedoch die @RESULT-Variable (gecastet) als String in eine Spalte, erscheint das gewünschte XML.

    Hat jemand eine Idee?

    Freitag, 8. April 2011 13:43

Alle Antworten

  • Schreibe ich jedoch die @RESULT-Variable (gecastet) als String in eine Spalte, erscheint das gewünschte XML.


    Hallo,

    und was erhälst Du beim Select wenn Du wie beim Update die value abfragst, bekommst Du da Werte geliefert? Denn wenn das XQuery nicht korrekt ist, bekommst Du NULL Werte zurück.


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Freitag, 8. April 2011 14:12