更新Oracle中的Clob列

时间:2011-08-22 21:48:23

标签: 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><nv_pair></nv_pair><nv_pair></nv_pair></form>

要插入的位置:在</form>

之前

2 个答案:

答案 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 ...