Announcement

Collapse
No announcement yet.

XML in Text-String konvertieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML in Text-String konvertieren

    Morgen zusammen!
    Hab da ein kleines Problem:
    Ich lasse mir in SQL Server 2005 mit FOR XML ein XML-Dokument generieren und speichere dieses in einer Tabellenspalte vom Typ XML.
    Ich würde nun gerne dieses XML-Dok per DB-Link an eine Oracle-Datenbank übertragen.
    Da Oracle allerdings nur Zugriff auf LONG-Spalten erlaubt muss ich mein XML-Dokument in einen Text-String konvertieren.
    Weiß jemand wie ich das am besten anstelle??

    Einfach in eine TEXT-Tabelle speichern geht nicht, da eine XML->TEXT Konvertierung nicht erlaubt ist.
    Desweiteren sind TEXT/NTEXT/IMAGE-Variablen in einer Stored Procedure nicht erlaubt.

    Ich weiß nicht mehr weiter.
    Irgendwelche Ideen??

    gruß
    bang

  • #2
    Hast du es schon mal mit
    SELECT feld1, CAST(xmlFeld as VARCHAR(MAX)) as feld2, ...
    probiert?

    bye,
    Helmut

    Comment


    • #3
      Hi Helmut, Danke für deine Antwort!

      Das Problem beim Casten in VARCHAR ist das 8000-Zeichen-Limit.
      Meine XML-Dokumente sind in der Regel größer als 8000 Zeichen

      Wie könnte ich die XML-Daten in eine Text-Tabelle/Variable bekommen?
      Oder gibt es eine Möglichkeit diese in mehrere VARCHAR-Variablen aufzusplitten? (Sozusagen als dynamisches VARCHAR-Array) Und diese dann in einer Tabelle zu speichern?

      Comment


      • #4
        hmm, laut http://msdn2.microsoft.com/de-de/library/ms176089.aspx :
        Verwenden Sie varchar(max), wenn die Dateneinträge einer Spalte unterschliedlich lang und größer als 8.000 Byte sein können.

        Ist der Typ varchar(max) somit komplett ohne Größen-Limit??
        Gibt es ihn erst ab SQL Server 2005?

        Comment


        • #5
          Originally posted by bang View Post
          Ist der Typ varchar(max) somit komplett ohne Größen-Limit??
          BOL sagt:
          "max indicates that the maximum storage size is 2^31-1 bytes. The storage size, in bytes, is two times the number of characters entered + 2 bytes"
          ( Oops - bezieht sich auf nvarchar(max) )

          BOL sagt über Varchar(Max):
          "maximum number of characters that can be stored by this data type is 2^31"


          Originally posted by bang View Post
          Gibt es ihn erst ab SQL Server 2005?
          Jawoll!

          HTH,
          Karsten

          Comment

          Working...
          X