我想用 PL/SQL 将分号分隔的字符串分成几个部分。只要字符串中没有圆括号,它就可以与 REGEXP_SUBSTR 一起正常工作。
例子:
select REGEXP_SUBSTR('A;B;C','[^(";")]+',1,1),
REGEXP_SUBSTR('A;B;C','[^(";")]+',1,2),
REGEXP_SUBSTR('A;B;C','[^(";")]+',1,3)
from dual;
预期的结果是:ABC
A;B(1);C 的结果应该是 AB(1) C 但我得到的是: AB 1
select REGEXP_SUBSTR('A;B(1);C','[^(";")]+',1,1),
REGEXP_SUBSTR('A;B(1);C','[^(";")]+',1,2),
REGEXP_SUBSTR('A;B(1);C','[^(";")]+',1,3)
from dual;
这意味着 '(' 被检测为分隔符,但我不理解这种行为。有人可以赐教吗?