1、功能替换掉[内容],这样的内容。
2、替换掉[]保留"内容".Select REGEXP_REPLACE('[TEST]', '(\[)(\w*)(\])', '') from dual; ---这个oK
Select REGEXP_REPLACE('[TEST *< ]', '(\[)(\w*)(\])', '') from dual;---特殊字符就不行
   
Select REGEXP_REPLACE('[AND PP.INTEGRAL>=NVL(#CON_PARAM#,0)]', '(\[)(\w*)(\])', '') from dual;急,请高手指教

解决方案 »

  1.   

    SQL> Select REGEXP_REPLACE('[TEST *< ]', '(\[).*(\])', '') from dual;
     
    REGEXP_REPLACE('[TEST*<]','(\[
    ------------------------------
     
    SQL> 
    SQL> Select REGEXP_REPLACE('[AND PP.INTEGRAL>=NVL(#CON_PARAM#,0)]', '(\[).*(\])', '') from dual;
     
    REGEXP_REPLACE('[ANDPP.INTEGRA
    ------------------------------
     
    SQL> 
      

  2.   

    对于你的第2:SQL> Select REGEXP_REPLACE('[TEST *< ]', '(\[)(.*)(\])', '\2') from dual;
     
    REGEXP_REPLACE('[TEST*<]','(\[
    ------------------------------
    TEST *<
      

  3.   

    楼上正解,关键是oracle正则任意字符串的表达:(.*)
    其中 . 是匹配除换行符之外的任意单字符,* 表示0~n个字符