Ich benutze im Allgemeinen translate dafür, weil es solch ein ungerader Eckfall ist:
%Vor%Wenn nötig, kann das zu einer Prozedur gemacht werden, aber ich bin mir nicht sicher, ob es in Bezug auf die Leistung sehr viel Nutzen bringen würde.
Sie können eine Funktion erstellen, die versucht, die Zeichenfolge in eine Zahl zu konvertieren, und die Ausnahme abfängt. Etwas wie
%Vor%Dann können Sie
%Vor% Bei Oracle 12. 2 kann dies mit der Option on conversion error
etwas einfacher gemacht werden:
Optional können Sie auch eine Formatmaske angeben, ähnlich der to_number()
Funktion.
Ich nehme an, das wäre schneller als mit einer PL / SQL-Funktion, nicht sicher über die Leistung im Vergleich zu einem case
mit einer Regex. Aber es ist definitiv viel kürzer.