ORA-31186 Xml数据太大了

时间:2015-08-28 02:50:14

标签: xml oracle

我遇到了oracle sql错误 ORA-31186:文档包含太多节点 当我尝试从包含非常大的xml日期的CLOB字段中选择/更新/删除时。我在它周围搜索说需要减少节点的大小,这是否意味着我需要减少我的xml数据的大小?如果是这样,这是不可能的,因为这不受我们控制。除此以外的任何其他选择?

有两个条件:

1)无法将CLOB更改为XMLType。

2)无法减小文档大小。

我的查询示例:

update table1
set xmlfield = deletexml(xmltype(xmlfield), '//Item[@code="00000002"]').getclobval()
where dbms_lob.compare(xmlfield, empty_clob()) != 0
and xmlexists('//Item[@code="00000002"]' passing xmltype(xmlfield));

2 个答案:

答案 0 :(得分:0)

设置:

event =“ 31153永远的跟踪名称上下文,级别4096”

在init.ora中,它将限制从64K增加到4M个节点。

答案 1 :(得分:0)

我在 Oracle 论坛中找到了答案:https://community.oracle.com/tech/apps-infra/discussion/4338278/ora-31186-document-contains-too-many-nodes

使用相对 XPath 时会出现此问题。当我将它们更改为绝对路径时,它又起作用了。