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;
これは「(」が区切り文字として検出されることを意味しますが、私はこの動作を理解していません。誰かが私を啓発してもらえますか?