我有一个名为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><nv_pair></nv_pair><nv_pair></nv_pair></form>
要插入的位置:在</form>
答案 0 :(得分:4)
看看DBMS_LOB包。
BTW,可能值得探讨放弃CLOB和使用Oracle内置XML功能的可能性(尽管我不熟悉)。答案 1 :(得分:2)
根据您拥有的Oracle版本,您可以使用regexp_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 ...