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

如何截取所需要的字段,请看
有如下字符串 a=badfd+dfddc+ddasd+sfd 
现在要截取符号之间的字段,也就是badfd;dfddc;ddasd;sfd这四个结果,现提供一下PLSQL语言,
大侠帮助一下,修改修改
declare
v_sql long;
i number :=1;
j number :=1;
begin
 
v_sql:='a=badfd+dfddc+ddasd+sfd';
loop
select instr(v_sql,'+',1,j) into i from dual;
j:=j+1;
exit when i=0;
dbms_output.put_line(i); 
end loop;
end;

------解决方案--------------------
SQL code

--按你的写法
declare
v_sql long;
i number :=1;
j number :=1;
begin
v_sql:='a=badfd+dfddc+ddasd+sfd';
v_sql:=regexp_replace(v_sql,'[a-zA-Z]+=','');
loop
select instr(v_sql,'+',1,j) into i from dual;
dbms_output.put_line(regexp_substr(v_sql,'[^+]+',1,j));
j:=j+1; 
exit when i=0;
end loop;
end;
/
/*
badfd                                                                           
dfddc                                                                           
ddasd                                                                           
sfd    
*/