Xml 在Oracle中更新Clob列
我有一个名为ABC的表,其中包含CLOB数据。我想更新列,以便在此Clob列的特定位置插入字符串 要插入的字符串:Xml 在Oracle中更新Clob列,xml,oracle,clob,Xml,Oracle,Clob,我有一个名为ABC的表,其中包含CLOB数据。我想更新列,以便在此Clob列的特定位置插入字符串 要插入的字符串: <nv_pair> <name identifier="XYZ"></name> <value identifier="XYZ"></value> </nv_pair> Clob数据: <form> <nv_pair></nv_pair> <nv_pair>
<nv_pair>
<name identifier="XYZ"></name>
<value identifier="XYZ"></value>
</nv_pair>
Clob数据:
<form> <nv_pair></nv_pair> <nv_pair></nv_pair><nv_pair></nv_pair><nv_pair></nv_pair></form>
要插入的位置:就在
之前,请查看DBMS\u LOB包
顺便说一句,也许值得探讨一下放弃CLOB并使用Oracle内置XML功能的可能性(尽管我不太熟悉)。根据您拥有的Oracle版本,您可以使用regexp\u replace函数:
update abc
set clob_val =
regexp_replace(clob_val,
'^(.+)(</form>)',
'\1<nv_pair><name identifier="XYZ"></name><value identifier="XYZ">/value>/nv_pair>\2')
where ...
更新abc
设置clob_val=
regexp_替换(clob_val,
'^(.+)()',
“\1/值>/nv\U对>\2”)
哪里
+1表示xmltype建议,尽管它将取决于数据库版本是否可能(且建议)切换。