【问题标题】:How to update BLOB data using SQL. I am using oracle 8.1如何使用 SQL 更新 BLOB 数据。我正在使用 oracle 8.1
【发布时间】:2018-06-24 18:53:18
【问题描述】:

BLOB 数据是一个 XML 片段,目前在数据库中看起来像这样

    <lrs-conv end-page="34" runhead="LMI v BAULDERSTONE" series="NSWLR" start-page="31" version="1" volume="(2001) 53">

我需要通过删除年份来更新它,如下所示。

    <lrs-conv end-page="34" runhead="LMI v BAULDERSTONE" series="NSWLR" start-page="31" version="1" volume="53">

我有大约 1000 条 BLOB 数据记录,需要类似地更新。所以我在想一个 UPDATE SQL 脚本可能会有所帮助。

【问题讨论】:

    标签: sql xml oracle blob


    【解决方案1】:

    我尝试了下面的脚本,但它只是让我只更新数据库中的一条记录,因为 substr 的参数不断变化以适应数据库中的其他记录。我想更改 SQL 以便它可以更新 BLOB XML 中所有记录的卷。

    Update FRAGMENT F
           set F.FRAGMENT_DATA = REPLACE ((select DBMS_LOB.SUBSTR(FRAGMENT_DATA) 
               from 
             FRAGMENT where OBJECT_ID = '5037087'
             and fragment_type_id = 77 and doctype_id = 29),
             (select Dbms_lob.substr(FRAGMENT_DATA,7,106) from Fragment  where 
             OBJECT_ID = '5037087'
             and fragment_type_id = 77 and doctype_id = 29),
             '')
             where OBJECT_ID = '5037087'
    and fragment_type_id = 77 and doctype_id = 29 
    

    【讨论】:

    • 抱歉回复晚了。非常感谢。这个脚本让我了解了如何使用 SQL 更新 BLOB 数据。
    猜你喜欢
    • 2018-10-05
    • 2019-06-08
    • 1970-01-01
    • 2012-08-02
    • 2019-08-28
    • 1970-01-01
    • 2011-07-02
    • 2021-08-01
    • 1970-01-01
    相关资源
    最近更新 更多