这种方式比较繁琐,lob包里面没发现这种功能的函数
不知有没有更好的方式
12:09:03 SQL> select * from tlob;      AAA BBB
--------- ---------------------------------------------------------------------
        1 asdfasdf
        1 tstfifof;fff]v]
        1 数据实际:71
12:09:14 SQL> select dbms_lob.substr(bbb,dbms_lob.instr(bbb,'f')-1) from tlob;DBMS_LOB.SUBSTR(BBB,DBMS_LOB.INSTR(BBB,'F')-1)
-------------------------------------------------------------------------------
asd
tst
实际:100
12:09:36 SQL>

解决方案 »

  1.   

    dbms_lob.write是一个过程,只能用在pl/sql中。
    SQL> set serveroutput on
    SQL> declare
      2  v_clob clob:='1111';
      3  begin
      4  dbms_lob.write(v_clob,2,2,'22');
      5  dbms_output.put_line(v_clob);
      6  end;
      7  /
    1221
      

  2.   

    可能我说物不够清楚,我的那个clob类型的字段中可能会出现多个我想替换的字符,如果用上述的方法,好像实现不了吧。
      

  3.   

    用存储过程的话,用dbms_lob.write(fieldname,2,2,'22')这样的写法能写入数据库中?
    而且我肯定是通过cursor来循环每一条数据,cursor是可写的吗,能对它进行修改,直接返回数据库?