Oracle 10からOracle 12cへ移行する途中です。 ほとんどのデータにXmlTypeドキュメントが含まれているDBの一部を移行しました。新しい要件のため、一部の文書では属性の更新が必要です。ノードに新しい属性を追加するXMLTypeを更新します。
当初、我々はXMLを次ていますxmlupdate後
<root>
<a id="1">
aaaaaaaaaa
</a>
<b id="2">
bbbbbbbbbb
</b>
</root>
、それはこのようなものにする必要があります。Oracle 10では
<root>
<a id="1">
aaaaaaaaaa
</a>
<b id="2" newAttribute="">
bbbbbbbbbb
</b>
</root>
、これは成功するでしょう:
update TABLE_NAME set whattoUpdate = (select insertchildxml(whattoUpdate, 'xpathexpression', '@attribute', 'valueOfAttribute', 'namespace') as result from TABLE_NAME where id = XX);
を
これは動作するはずですが、Oracle 12では動作しません(select文は空のxmlを01に返します)。)。
thisによれば、機能insertchildxml()
はサポートされなくなりました。