سلاسل متسلسلة من صفين مختلفين في طاولة
سؤال
نحن نحاول إعادة صياغة SQL في المنتج. يقوم المنتج بتخزين XML في جدول كما يلي:
XML_STORAGE - UID IDENTITY - PARENT_ID INTEGER - SEQ INTEGER - XML VARCHAR(3800)
الطريقة الحالية للقيام بذلك هي على النحو التالي:
استرداد جميع الصفوف لـ Parent_id = n. ثم انتقل إلى الصفوف التي تم جلبها في الكود وتسلسل سلاسل XML إلى XML كبيرة واحدة قبل التحليل. يتم استخدام عمود SEQ لطلب النتيجة بحيث يمكن تسلسل سلاسل XML بشكل صحيح. نأمل أن يكون هذا واضحا.
ما نحاول القيام به هو إعادة صياغة هذا حتى نتمكن من استخدام متغير SQL لاسترداد السلسلة بأكملها وجلب صف واحد من DB2. هل هناك وظيفة DB2 تسمح لنا بتسلسل السلسلة في كل هذه الصفوف في سلسلة كبيرة واحدة في مجموعة النتائج. كيف يمكن أن تبدو مثل هذا SQL. أخبرونى من فضلكم. أي مساعدة هي محل تقدير كبير.
شكرًا! - Azeem
المحلول
تحقق من الاستعلامات العودية في DB2 ، كما ذكر هنا
نصائح أخرى
نعم هنالك. اغلق XMLELEMENT
, XMLAGG
, ، و XMLSERIALIZE
. يجب أن تفعل الخدعة لمعظم الناس. مثال يمكنك رؤيته في السؤال التالي إخراج استعلام DB2 SQL XML إلى ملف XML فريد
تعديل:
لماذا لا تفعل شيئًا مثل select '<tag1>', col1. '</tag1><tag2>', col2, '</tag2>' from table
؟ إذا كنت بحاجة إلى الجمع بين جميع الصفوف في واحدة من تشغيل عملية ما بعد المعالجة لإزالة فواصل الخط.