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

PL/SQL 字符处理:“(字符1)保留字符(字符1)”
“(字符1)保留字符(字符1)” 你好,把前边括号里的内容去掉,后边括号里的内容去掉,处理的结果为 :保留字符 怎么处理?我用正则把括号里的内容过滤掉后,处理后的结果为空了,它把第一个左括号,和最一右括号认为是一个括号,处理后为空了,我不想为空,我想保留两组括号外的字符,我怎么办?

------解决方案--------------------
你此处写的)都是全角的,如果是半脚的需转义
SQL code

SQL> declare
  2      v_t varchar2(100) := '(字符1)保留字符(字符1)';
  3  begin
  4      select regexp_replace(v_t,'([^)]*)','') into v_t from dual;
  5      dbms_output.put_line(v_t);
  6  end;
  7  /
保留字符                                                                        

PL/SQL 过程已成功完成。

------解决方案--------------------
我帮你改为半角的了,自已留意下不同处
SQL code

SQL> set serveroutput on;
SQL> declare
  2      v_t varchar2(100) := '(字符1)保留字符(字符1)';
  3  begin
  4      select regexp_replace(v_t,'\([^)]*\)','') into v_t from dual;
  5      dbms_output.put_line(v_t);
  6  end;
  7  /
保留字符                                                                        

PL/SQL 过程已成功完成。