2010-03-22 3 views
1

Мы пытаемся переработать SQL в продукте. Сохраняет продукт XML в таблице следующим образом:Объединение строк из двух разных строк в таблице

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

текущий способ сделать это состоит в следующем:

Получить все строки для PARENT_ID = п. Затем перейдите по выделенным строкам кода и объедините XML-строки в один большой XML перед разбором. Столбец SEQ используется для ЗАВЕРШЕНИЯ результата, чтобы строки XML могли быть конкатенированы правильно. Надеюсь, это понятно.

Что мы пытаемся сделать, так это переработать это, чтобы мы могли использовать вариант SQL для извлечения всей строки и просто извлечь одну строку из DB2. Есть ли функция DB2, которая позволит нам конкатенировать строку во всех этих строках в одну большую строку в наборе результатов. Как бы выглядел такой SQL. Пожалуйста, дайте мне знать. Буду признателен за любую оказанную помощь.

Спасибо! - Азим

ответ

0

Проверить рекурсивные запросы в DB2, такие как упомянуто here

+0

Горан, спасибо за информацию. Я проверю это сейчас. – Azeem

+0

Горан, к сожалению, я не могу использовать общие табличные выражения или рекурсивные запросы из-за требования, что мы поддерживаем DB2 z.OS v8 CM (эффективный DB2 v7). Не похоже, что DB2 v7 поддерживает синтаксис выражений common-table. :( – Azeem

+0

не имеют этой версии, чтобы проверить ее, но ссылка v7 SQL ftp://ftp.software.ibm.com/ps/products/db2/info/vr7/pdf/letter/db2s0e70.pdf говорит, что вы можете пример на странице pdf 1341 (ах, 4-значные номера страниц руководств IBM :)) – Unreason

0

Да есть. Заблокировать XMLELEMENT, XMLAGG и XMLSERIALIZE. Это должно сделать трюк для большинства людей. Пример вы можете увидеть в следующем вопросе Output a DB2 SQL XML query to a unique XML file

Edit:

Почему бы вам не сделать что-то вроде select '<tag1>', col1. '</tag1><tag2>', col2, '</tag2>' from table? Если вам нужно объединить все строки в одну, а затем выполнить постобработку, чтобы удалить разрывы строк.

+0

Спасибо за информацию Peter. К сожалению, учитывая, что это DB2 v7, у нас нет роскоши использовать XML-специфический синтаксис DB2. :( – Azeem

Смежные вопросы