Генерация XML с DBMS_XMLGEN, даже если набор результатов пуст - PullRequest
2 голосов
/ 15 апреля 2019

Я использую DBMS_XMLGEN для создания XML по заданному запросу.Я форматирую этот XML с помощью XSLT.

Я сталкиваюсь с проблемой, когда набор результатов пуст: XML, возвращаемый DBMS_XMLGen.getXML, пуст (нет пустых узлов XML - просто сгусток 0 размера).Мне нужно, чтобы XML сохранил ту же структуру, как определено в XSLT, но просто возвращает пустые узлы XML.

Это код (lv_FinalQuery и lv_Clb_Xsl рассчитываются до этого)

       -- creating new context query
       lv_Vc2_location := 'DBMS_XMLGEN.newContext';
       lv_queryCtx := DBMS_XMLGen.newContext(lv_FinalQuery);

       -- Setting the xsl file with the query context
       lv_Vc2_location := 'DBMS_XMLGEN.setXSLT';
       DBMS_XMLGen.setXSLT(lv_queryCtx,lv_Clb_Xsl);

       -- Setting the rowset tag
       lv_Vc2_location := 'DBMS_XMLGEN.setRowsetTag';
       DBMS_XMLGen.setRowsetTag(lv_queryCtx, 'USER_LIST');

       -- Setting the row tag
       lv_Vc2_location := 'DBMS_XMLGEN.setRowTag';
       DBMS_XMLGen.setRowTag(lv_queryCtx, 'USER');

       -- Getting the xml
       lv_Vc2_location := 'DBMS_XMLGEN.getXML';
       p_XmlResult := DBMS_XMLGen.getXML(lv_queryCtx);

1 Ответ

0 голосов
/ 17 апреля 2019

В итоге я просто возвратил предварительно скомпилированный XML, если вывод DBMS_XMLGen.getXML равен нулю:

   IF p_XmlResult IS NULL THEN
        p_XmlResult := '<USER_LIST>the rest of the XSLT structure is here...</USER_LIST>';
   END IF;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...