我正在运行Oracle Database 11g企业版11.2.0.3.0版 - 64位生产。
使用时
我收到错误ORA-31067: XML nodes must be updated with valid nodes and of the same type
。表示要更新的每个节点的XPath_string始终引用text()
节点,因此更新这些节点时AFAIK没有类型限制。写入这些节点的内容始终为Varchar2
,Char
或Number
类型。
更糟糕的是,这个错误发生在制作中,但我根本无法在我的测试系统上复制它。
我想知道它是否与我的XML中的一个节点具有自定义类型的xsi:type
属性这一事实有关。我在哪里可以找到类型定义?也许这是在生产系统的某个地方定义的,而不是在我的测试克隆上定义的?
我注意到有时文本可能包含<
个字符,这似乎是Oracle旧版本(10g)中的一个错误,参见Oracle updateXml "less than sign" as text但是我的测试系统上没有发生这种情况,我尝试了<, >, &
的各种组合。