我想把DB中的message表的[good bye]换为[bye bye],用下面的方法行么?UPDATE
 ** 
SET 
MESSAGE = REPLACE(MESSAGE,'good bye','bye bye') 
WHERE 
MESSAGE LIKE '%good bye%'MESSAGE列中有回车,空格什么的,我很担心。

解决方案 »

  1.   

    很有问题,给你举个例子你就明白了SQL> declare
      2   v_val varchar2(1000) := 'good
      3   bye';
      4  begin
      5   dbms_output.put_line(replace(v_val,'good bye','bye bye'));
      6   dbms_output.put_line(regexp_replace(v_val,'good[[:space:]]*bye','bye bye',1,1,'m'));
      7  end;
      8  /
    good
    bye                                                                
    bye bye                                                                         已順利完成 PL/SQL 程序.SQL> spool off;
    源码,自已对照替换下就可以了declare
    v_val varchar2(1000) := 'good         
    bye';
    begin
    dbms_output.put_line(replace(v_val,'good bye','bye bye'));
    dbms_output.put_line(regexp_replace(v_val,'good[[:space:]]*bye','bye bye',1,1,'m'));
    end;
    /