Oracle BUILT-IN Function TO_NUMBER

von Karsten Besserdich

Für einen Import aus mehreren Fremdsystemen habe ich verschiedene STRINGS erhalten, welche in Oracle in den Datentyp NUMBER umgewandelt werden müssen. Es handelte sich um Beträge mit unterschiedlicher Formatierung. Diese gilt es in den ORACLE Datentyp NUMBER zu konvertieren, ohne den Wert zu verfälschen (z.B. durch ungewollte Rundungen)

Oft habe ich komplizierte und fehleranfällige Stringoperationen im Quellcode gefunden um die übergebenen String in NUMBER Datentypen umzuwandeln.
Das muss nicht sein, da uns die Datenbank mittels der Build-In Function TO_NUMBER eine sehr mächtige Funktion zur Verfügung stellt.

Praxisbeispiel 1

Das erste System liefert numerische Werte in dem Format 999G999G999D99999, wobei die tausender Gruppen mit einem Leerzeichen gekenntzeichnet ist, z.B. -7 000,00541
Als erstes muss das Format des numerischen Wertes analysiert werden, um dann den Format- und den NLS-Parameter richtig zu bestücken.

Praxisbeispiel 2

Ein anderes System liefert numerische Werte in dem Format 99999999999999999999D9999999, wobei es keine tausender Gruppentrenner gibt.

SCHREIBEN SIE EINEN KOMMENTAR