Därför skulle jag vilja separera strängen med den längsta avgränsaren.
Jag vet att detta är en gammal fråga, men det här är ett enkelt krav som SUBSTR för och INSTR skulle räcka. REGEXP är fortfarande långsammare och CPU-intensiva operationer än de gamla subtsr- och instr-funktionerna.
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
Som du sa vill du ha längst avgränsare, skulle det betyda den första avgränsaren från omvända .
Du närmade dig bra, men du saknade startpositionen i INSTR . Om startpositionen är negativ , INSTR
funktionen räknar tillbaka start_position antal tecken från slutet av strängen och söker sedan mot början av strängen.