【发布时间】:2015-10-27 00:34:10
【问题描述】:
我需要从复杂查询的返回中获取 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;
【问题讨论】:
标签: oracle dbms-xmlgen