用replace (t.keywords,'.',',')只能一次将一种标点符号转化,
我想该列中不管任何标点符号都转换成逗号,因为一次要处理很多行数据
所以这个replace太慢了。而且我也不知道这列里到底有多少重标点符号。

解决方案 »

  1.   

    与其用replace,不如用自己定义的函数来实现。
      

  2.   

    update 表 set 字段=decode(字段,'.',',',',');
      

  3.   

    SELECT REGEXP_REPLACE('餐饮:住宿;洗浴、美容美发',
                          '[:punct:]+?',
                          ',') RESULT
      FROM dual;
    用正则表达式可以解决这个问题,试了几个表达式还是不成功。
    现在的关键问题是找这么一个表达式。就可以了
    这一页有关于正则表达式的详细介绍。
    求人不如求己。
    等找到答案了我来解决这个问题
    多谢
    http://www.psoug.org/reference/regexp.html
      

  4.   

    SELECT REGEXP_REPLACE('餐饮:住宿;洗浴、美容美发',
                          '[[:punct:]]+?',
                          ',') RESULT
      FROM dual;