数据:dad(disc_id = 90910 and disc_item_id in (91793,92375)) and (disc_id = 91648 and disc
_item_id in (92625,92626)) or (disc_id = 50001610 and disc_item_id =50002164) or
(disc_id = 50005959 and disc_item_id =50003118)add最后需要的结果如下:
(disc_id = 90910 and disc_item_id in (91793,92375))(disc_id = 91648 and disc
_item_id in (92625,92626))(disc_id = 50001610 and disc_item_id =50002164)(disc_id = 50005959 and disc_item_id =50003118)add说明:需要找出数据中的所有第一级括号里面的内容。
_item_id in (92625,92626)) or (disc_id = 50001610 and disc_item_id =50002164) or
(disc_id = 50005959 and disc_item_id =50003118)add最后需要的结果如下:
(disc_id = 90910 and disc_item_id in (91793,92375))(disc_id = 91648 and disc
_item_id in (92625,92626))(disc_id = 50001610 and disc_item_id =50002164)(disc_id = 50005959 and disc_item_id =50003118)add说明:需要找出数据中的所有第一级括号里面的内容。
declare
s varchar2(300);
begin
s:='dad(disc_id = 90910 and disc_item_id in (91793,92375)) and
(disc_id = 91648 and disc_item_id in (92625,92626)) or
(disc_id = 50001610 and disc_item_id =50002164) or
(disc_id = 50005959 and disc_item_id =50003118)add'; select regexp_replace(s,'[^\(\)]*(\(.*\))[^\(\)]*','\1')||regexp_substr(s,'[^\(\)]*$') into s from dual;
dbms_output.put_line(s);
end;
/