我遇到了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));
答案 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 时会出现此问题。当我将它们更改为绝对路径时,它又起作用了。