私はxml文書を持っています
<d>
<r>a<b</r>
</d>
そして私はそれを更新したい
<d>
<r>a<b or c>d</r>
</d>
updateXMLステートメントを使用します。
実行中
select updateXML(xmltype('<d><r>a<b</r></d>'),
'/d/r[1]/text()',
'a<b or c>d')
from dual;
戻り値
<d>
<r>a&lt;b or c&gt;d</r>
</d>
「&」のせいでダメです。
実行中
select updateXML(xmltype('<d><r>a<b</r></d>'),
'/d/r[1]/text()',
'a<b or c>d')
from dual;
スロー
ORA-31067 XMLノードは、有効なノードおよび同じタイプで更新する必要があります。
どうすれば期待される結果に到達できますか?
EDIT : ORA-31067 は 10g データベースでのみ発生します。11gの正しいクエリです。
EDIT2 : 10.2.0.3 バージョンでエラーが発生し、10.2.0.5 では発生しません。もしかしてバグだった?