したがって、文字列を最も遠い区切り文字で区切りたいと思います。
これは古い質問ですが、これは SUBSTRの単純な要件です。 およびINSTR 十分でしょう。 正規表現 まだ遅い およびCPU集中型 古いsubtsrおよびinstr関数よりも操作。
SQL> WITH DATA AS
2 ( SELECT 'F/P/O' str FROM dual
3 )
4 SELECT SUBSTR(str, 1, Instr(str, '/', -1, 1) -1) part1,
5 SUBSTR(str, Instr(str, '/', -1, 1) +1) part2
6 FROM DATA
7 /
PART1 PART2
----- -----
F/P O
あなたが言ったように、あなたは最も遠い 区切り文字、それは逆からの最初の区切り文字を意味します 。
アプローチは問題ありませんでしたが、 start_positionがありませんでした INSTRで 。 start_positionが負の場合 、INSTR
関数は、文字列の末尾からstart_position文字数をカウントバックし、文字列の先頭に向かって検索します。