Puoi usare SUBSTR
e INSTR
:
select substr('john.abc_1234', 1, instr('john.abc_1234', '_') -1)
from dual
Aggiorna
Inoltre, se stai eseguendo da Oracle 10g in poi, potresti prendere il percorso Regex, che gestirebbe in modo più potente le eccezioni.
Ecco alcuni link su come farlo in Oracle:
- http://psoug.org/reference/regexp.html
- http://psoug.org/snippet/Regular -Espressioni--Regexp-Cheat-Sheet_856.htm
- http://www.regular-expressions.info/oracle.html