DBMS_XMLGEN 包限制?

DBMS_XMLGEN package limitations?

我需要从复杂查询的返回中得到一个 XML。我之前在类似情况下的示例,我使用了 DBMS_XMLGEN 包上下文来生成 XML.

但是在这个例子中,我遇到了一个问题:

    ...
    begin
    l_ctx :=
             DBMS_XMLGEN.newcontext (
                'SELECT SIRENREC AS receiptNumber,
ICPSCDDE AS companyCode,
             SISENPOL
                AS policyNumber,
             SIREISIN AS claimNumber_aux,
             SUBSTR (SIREISIN, 3, LENGTH (SIREISIN)) AS claimNumber,
      sirevlre - sirevirs + sireviva,
                AS receiptAmount
        FROM MTICPS,
             MTSIRE,
             MTSISE,
             MTINPI,
             MTRLRS              
       WHERE     ICPSIDEN = ''N''
             AND ICPSRFPG = :refPag
             AND ICPSCDDE = SIRECDDE
             AND ICPSISIN = SIREISIN
             AND ICPSNREC = SIRENREC
             AND RLRSCDDE = SIRECDDE
             AND RLRSSISE = SIREISIN
             AND RLRSSIRE = SIRENREC
             AND RLRSISIN = INPIISIN
             AND RLRSRECI = INPINREC
             AND RLRSCDDE = INPICDDE
             AND SIRECDDE = SISECDDE
             AND SIREISIN = SISEISIN
             AND SIREVLRE <> 0
             and rownum < 110
          ORDER BY SIRECDDE, SIREISIN, SIRENREC');
      DBMS_XMLGEN.setrowsettag (l_ctx, 'INT_DATA');
          DBMS_XMLGEN.setrowtag (l_ctx, 'Item');

          DBMS_XMLGEN.setbindvalue (l_ctx, 'refPag', 'BLABLA');
    lxmltype := DBMS_XMLGEN.getXmlType (l_ctx);

          DBMS_XMLGEN.closeContext (l_ctx);

我认为我的问题是尺寸。例如,如果我设置 and rownum < 110 条件,我可以获得所有 XML 并完成 110 条记录。但是如果我有超过 110 条记录,我的 l_ctx 变量就是空的,我的 XML 是空的。

我们这里有一些限制?我查阅了 Google 和 Oracle 文档,但找不到任何参考资料。

有什么帮助吗? 谢谢。 菲利普

Edit1:我发现在将 XMLTYPE 转换为 CLOB 时出现数字或值错误。我认为我的 XMLTYPE 不为空。它只是一个大变量,我无法使用 xmltype.getClobVal();

将其转换为 CLOB

嗯..我发现了错误。这是从 XMLTYPE 到 CLOB 的转换。对于大型 XMLTYPE 变量,XMLTYPE.getClobVal() 有某种大小限制。因此,我使用 XMLSerialize 函数进行转换:SELECT XMLSERIALIZE (DOCUMENT lxml_xmltypevar) FROM DUAL;

感谢任何事情。