Frage

Wir versuchen, die SQL in einem Produkt zu überarbeiten. Das Produkt speichert XML in einer Tabelle wie folgt:

XML_STORAGE
- UID IDENTITY
- PARENT_ID INTEGER
- SEQ INTEGER
- XML VARCHAR(3800)

Die aktuelle Art und Weise, dies zu tun ist wie folgt:

Abrufen alle Zeilen für PARENT_ID = n. gehen Sie dann die abgerufenen Zeilen im Code und verketten die XML-Strings in eine große XML vor Parsen. Die SEQ Spalte wird verwendet, um das Ergebnis zu bestellen, damit können die XML-Strings richtig verkettet werden. Hoffentlich das ist klar.

Was wir versuchen zu tun, ist dies überarbeitet, so dass wir eine SQL-Variante verwenden können, die gesamte Zeichenfolge abrufen und nur einen von DB2 Reihe zurück zu holen. Gibt es eine DB2-Funktion, die es uns ermöglichen, die Zeichenfolge in all diesen Zeilen in eine große Zeichenfolge in der Ergebnismenge verketten. Wie würde eine solche SQL-Look. Lass es mich wissen, bitte. Jede Hilfe ist sehr geschätzt.

Danke! - Azeem

War es hilfreich?

Lösung

Überprüfen Sie rekursive Abfragen in DB2, wie erwähnt hier

Andere Tipps

Ja, es gibt. Lock-up XMLELEMENT, XMLAGG und XMLSERIALIZE. Das sollte es für die meisten Menschen tun. Ein Beispiel, das Sie in der folgenden Frage sehen: Ausgabe einer DB2-SQL-XML-Abfrage auf eine eindeutige XML-Datei

Edit:

Warum gehst du nicht etwas tun, wie select '<tag1>', col1. '</tag1><tag2>', col2, '</tag2>' from table? Wenn Sie alle Zeilen in einem kombinieren als ein Nachbearbeitungs laufen die Zeilenumbrüche zu entfernen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top