Daher möchte ich die Zeichenfolge durch das am weitesten entfernte Trennzeichen trennen.
Ich weiß, dass dies eine alte Frage ist, aber dies ist eine einfache Anforderung, für die SUBSTR und INSTR würde genügen. REGEXP sind immer noch langsamer und CPU-intensiv Operationen als die alten subtsr- und instr-Funktionen.
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
Wie Sie sagten, wollen Sie den am weitesten Trennzeichen, es würde das erste Trennzeichen von der Rückseite bedeuten .
Ihre Annäherung war in Ordnung, aber Sie haben die start_position verfehlt in INSTR . Wenn die Startposition negativ ist , der INSTR
Die Funktion zählt start_position die Anzahl der Zeichen vom Ende der Zeichenfolge zurück und sucht dann zum Anfang der Zeichenfolge.