【问题标题】:Update Clob column in Oracle更新 Oracle 中的 Clob 列
【发布时间】:2011-08-23 21:54:47
【问题描述】:

我有一个名为 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>

要插入的位置:就在&lt;/form&gt;之前

【问题讨论】:

    标签: xml oracle clob


    【解决方案1】:

    看看 DBMS_LOB 包。

    顺便说一句,也许值得探索放弃 CLOB 并使用 Oracle 的内置 XML 功能的可能性(不过我对此并不熟悉)。

    【讨论】:

    • +1 用于 xmltype 建议,尽管它取决于数据库版本是否可以(并且建议)切换。
    【解决方案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 ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-22
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多