日期:2014-05-17  浏览次数:20816 次

oracle replace的问题
我想把DB中的message表的[good bye]换为[bye bye],用下面的方法行么?

SQL code
UPDATE    
     ** 
SET     
    MESSAGE = REPLACE(MESSAGE,'good bye','bye bye') 
WHERE     
    MESSAGE LIKE '%good bye%'


MESSAGE列中有回车,空格什么的,我很担心。



------解决方案--------------------
没问题吧
------解决方案--------------------
很有问题,给你举个例子你就明白了
SQL code

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;